@@ -41,22 +40,33 @@ export default {
diff --git a/src/config.js b/src/config.js
index a4f3af5..30c4c84 100644
--- a/src/config.js
+++ b/src/config.js
@@ -1,6 +1,6 @@
const config = {
devMode:true,
- breeMode: true,
+ breeMode: false,
recaptcha: "",
IP: [
{
diff --git a/src/router.js b/src/router.js
index 80f407f..91c5840 100644
--- a/src/router.js
+++ b/src/router.js
@@ -4,6 +4,7 @@ Vue.use(VueRouter)
import {store} from './store/index';
import MainApp from '../src/views/App.vue'
import HomePage from '../src/views/HomePage.vue'
+import GDriveCallback from '../src/views/GDriveCallback.vue';
import VueSocketio from 'vue-socket.io-extended';
import io from 'socket.io-client';
import config from './config'
@@ -42,6 +43,11 @@ export const router = new VueRouter({
})
next()
}
- }
+ },
+ {
+ path: '/GDrive_callback',
+ name: 'GDrive callback',
+ component: GDriveCallback
+ },
]
})
\ No newline at end of file
diff --git a/src/services/Api.js b/src/services/Api.js
index 9217dae..ba400a2 100644
--- a/src/services/Api.js
+++ b/src/services/Api.js
@@ -3,7 +3,8 @@ import config from '@/config';
export const instance = () => {
return axios.create({
- baseURL: config.domain
+ baseURL: config.domain,
+ withCredentials: true
})
}
diff --git a/src/services/UploadService.js b/src/services/AvatarUpload.js
similarity index 83%
rename from src/services/UploadService.js
rename to src/services/AvatarUpload.js
index 64b09fc..b3900a5 100644
--- a/src/services/UploadService.js
+++ b/src/services/AvatarUpload.js
@@ -1,7 +1,10 @@
-import {instance, wrapper} from './Api';
+import {
+ instance,
+ wrapper
+} from './Api';
export default {
- uploadAvatar(data, onProgress){
+ uploadAvatar(data, onProgress) {
const url = `/settings/avatar`;
let config = {
onUploadProgress(progressEvent) {
diff --git a/src/services/messagesService.js b/src/services/messagesService.js
index c6b1a55..748b5f9 100644
--- a/src/services/messagesService.js
+++ b/src/services/messagesService.js
@@ -1,12 +1,28 @@
import {instance, wrapper} from './Api';
-
+import filesize from "filesize";
export default {
// TODO: add ?continue=id
get ( channelID ) {
return wrapper(instance().get(`messages/${channelID}`));
},
- post (channelID, data) {
- return wrapper(instance().post(`messages/${channelID}`, data))
+ post (channelID, data, onProgress) {
+ const url = `messages/${channelID}`;
+
+ var start = +new Date();
+
+ let config = {
+ onUploadProgress(progressEvent) {
+ const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
+
+ // execute the callback
+ if (onProgress) onProgress(percentCompleted)
+
+ return percentCompleted;
+ },
+ };
+
+ return wrapper(instance().post(url, data, config));
+
}
}
\ No newline at end of file
diff --git a/src/services/settingsService.js b/src/services/settingsService.js
index e6d4934..9b5b318 100644
--- a/src/services/settingsService.js
+++ b/src/services/settingsService.js
@@ -4,4 +4,10 @@ export default {
setStatus ( status ) {
return wrapper(instance().post('/settings/status', { status }));
},
+ GDriveURL () {
+ return wrapper(instance().get('/settings/drive/url'));
+ },
+ GDriveAuth (code) {
+ return wrapper(instance().post('/settings/drive/auth', {code}));
+ }
}
\ No newline at end of file
diff --git a/src/store/index.js b/src/store/index.js
index c88ea69..c34e3e6 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,12 +5,26 @@ import socketModule from './modules/socketIOModule';
import channelModule from './modules/channelModule';
import messageModule from './modules/messageModule';
import notificationsModule from './modules/notificationsModule';
-import {router} from './../router'
+import settingsModule from './modules/settingsModule';
+import uploadFilesModule from './modules/uploadFilesModule';
+import popoutsModule from './modules/popoutsModule';
+import {
+ router
+} from './../router'
Vue.use(Vuex);
export const store = new Vuex.Store({
- modules: { user, channelModule, messageModule, notificationsModule, socketModule },
+ modules: {
+ user,
+ channelModule,
+ messageModule,
+ notificationsModule,
+ socketModule,
+ settingsModule,
+ uploadFilesModule,
+ popoutsModule
+ },
state: {
},
diff --git a/src/store/modules/popoutsModule.js b/src/store/modules/popoutsModule.js
new file mode 100644
index 0000000..1127a34
--- /dev/null
+++ b/src/store/modules/popoutsModule.js
@@ -0,0 +1,55 @@
+import axios from 'axios'
+import Vue from 'vue'
+import {
+ bus
+} from '../../main'
+import VueRouter from 'vue-router';
+import NotificationSounds from '@/notificationSound';
+
+const state = {
+ fileToUpload: null,
+ uploadDialog: false,
+ ImagePreviewURL: null,
+
+ dragDropFileUploadDialog: false,
+ settings: false,
+ GDLinkMenu: false,
+}
+
+const getters = {
+ popouts(state) {
+ return state;
+ }
+}
+
+const actions = {
+ setPopoutVisibility(context, data) {
+ context.commit('setPopoutVisibility', data)
+ },
+ setFile(context, file) {
+ context.commit('setFileToUpload', file);
+ },
+ setImagePreviewURL(context, url) {
+ context.commit('setImagePreviewURL', url);
+ }
+}
+
+const mutations = {
+ setPopoutVisibility(state, data) {
+ Vue.set(state, data.name, data.visibility)
+ },
+ setFileToUpload(state, file) {
+ Vue.set(state, 'fileToUpload', file);
+ },
+ setImagePreviewURL(state, url) {
+ Vue.set(state, 'ImagePreviewURL', url);
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ getters,
+ actions,
+ mutations
+}
\ No newline at end of file
diff --git a/src/store/modules/settingsModule.js b/src/store/modules/settingsModule.js
new file mode 100644
index 0000000..ffc334a
--- /dev/null
+++ b/src/store/modules/settingsModule.js
@@ -0,0 +1,42 @@
+import Vue from 'vue'
+import {bus} from '../../main'
+
+
+
+const state = {
+ settings: {
+
+ }
+}
+
+const getters = {
+ settings(state) {
+ return state.settings;
+ }
+}
+
+const actions = {
+ setSettings(context, settings) {
+ context.commit('setSettings', settings)
+ },
+ setGDriveLinked(context, status) {
+ context.commit('GoogleDriveLinked', status)
+ }
+}
+
+const mutations = {
+ setSettings(state, settings) {
+ state.settings = settings;
+ },
+ GoogleDriveLinked(state, status) {
+ Vue.set(state.settings, 'GDriveLinked', status)
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ getters,
+ actions,
+ mutations
+}
\ No newline at end of file
diff --git a/src/store/modules/socketIOModule.js b/src/store/modules/socketIOModule.js
index e7c0b98..24d9f3e 100644
--- a/src/store/modules/socketIOModule.js
+++ b/src/store/modules/socketIOModule.js
@@ -2,6 +2,7 @@ import {bus} from '../../main'
import {router} from './../../router'
import Vue from 'vue';
+
const state = {
}
@@ -16,7 +17,7 @@ const actions = {
},
socket_success(context, data) {
- const {message, user, dms, notifications, currentFriendStatus} = data;
+ const {message, user, dms, notifications, currentFriendStatus, settings} = data;
const friendsArray = user.friends;
const friendObject = {};
@@ -44,6 +45,7 @@ const actions = {
}
context.commit('addAllChannels', channelsObject)
context.dispatch('addAllNotifications', notifications)
+ context.dispatch('setSettings', settings)
},
@@ -100,6 +102,10 @@ const actions = {
['socket_notification:dismiss'](context, data){
const {channelID} = data;
context.dispatch('dismissNotification', channelID);
+ },
+ ['socket_googleDrive:linked'](context) {
+ context.dispatch('setPopoutVisibility', {name: 'GDLinkMenu', visibility: false})
+ context.dispatch('setGDriveLinked', true)
}
}
diff --git a/src/store/modules/uploadFilesModule.js b/src/store/modules/uploadFilesModule.js
new file mode 100644
index 0000000..7329773
--- /dev/null
+++ b/src/store/modules/uploadFilesModule.js
@@ -0,0 +1,45 @@
+import {bus} from '../../main'
+import {router} from '../../router'
+import Vue from 'vue';
+
+const state = {
+ uploads: {}
+}
+
+const getters = {
+ getAllUploads(state) {
+ return state.uploads;
+ }
+}
+
+const actions = {
+ addUpload(context, data) {
+ context.commit('addUpload', data)
+ },
+ updatePercentUpload(context, data) {
+ context.commit('updatePercentUpload', data)
+ },
+ removeUpload(context, tempID) {
+ context.commit('removeUpload', tempID)
+ }
+}
+
+const mutations = {
+ updatePercentUpload(state, data) {
+ Vue.set(state.uploads[data.tempID], 'percent', data.percent);
+ },
+ addUpload(state, data) {
+ Vue.set(state.uploads, data.tempID, data);
+ },
+ removeUpload(state, tempID) {
+ Vue.delete(state.uploads, tempID)
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ actions,
+ mutations,
+ getters
+}
\ No newline at end of file
diff --git a/src/views/App.vue b/src/views/App.vue
index 3edf192..09eebc3 100644
--- a/src/views/App.vue
+++ b/src/views/App.vue
@@ -2,108 +2,104 @@
diff --git a/src/views/GDriveCallback.vue b/src/views/GDriveCallback.vue
new file mode 100644
index 0000000..24eaf1e
--- /dev/null
+++ b/src/views/GDriveCallback.vue
@@ -0,0 +1,14 @@
+
+
+ Redirecting...
+
+
+
+
+
diff --git a/src/views/HomePage.vue b/src/views/HomePage.vue
index 2cb9dd5..659f759 100644
--- a/src/views/HomePage.vue
+++ b/src/views/HomePage.vue
@@ -312,7 +312,7 @@ button {
margin-right: 0;
margin-top: 0;
height:calc(100% - 50px);
- background-color: rgba(34, 34, 34, 0.877);
+ background-color: rgb(34, 34, 34);
width: 0;
overflow-x: hidden;
transition: 0.5s ease;