X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fframework%2Fwidgets%2Fskyquake_container%2FskyquakeContainerStore.js;h=cb731c73c6d808e61d31718809a2de4e22bfabbd;hb=56e55f5efc98e32a1afb3d99d07e9e5b0847a258;hp=fe4a7b059c16be508b1ee75d6ef9b601df10668a;hpb=e29efc315df33d546237e270470916e26df391d6;p=osm%2FUI.git diff --git a/skyquake/framework/widgets/skyquake_container/skyquakeContainerStore.js b/skyquake/framework/widgets/skyquake_container/skyquakeContainerStore.js index fe4a7b059..cb731c73c 100644 --- a/skyquake/framework/widgets/skyquake_container/skyquakeContainerStore.js +++ b/skyquake/framework/widgets/skyquake_container/skyquakeContainerStore.js @@ -1,5 +1,5 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -20,6 +20,7 @@ import Alt from './skyquakeAltInstance.js'; import SkyquakeContainerSource from './skyquakeContainerSource.js'; import SkyquakeContainerActions from './skyquakeContainerActions'; +let Utils = require('utils/utils.js'); import _ from 'lodash'; //Temporary, until api server is on same port as webserver var rw = require('utils/rw.js'); @@ -32,9 +33,12 @@ class SkyquakeContainerStore { this.nav = {}; this.notifications = []; this.socket = null; + this.projects = []; + this.user = {}; //Notification defaults this.notificationMessage = ''; this.displayNotification = false; + this.notificationType = 'error'; //Screen Loader default this.displayScreenLoader = false; this.bindActions(SkyquakeContainerActions); @@ -81,9 +85,9 @@ class SkyquakeContainerStore { let connection = data.connection; let streamSource = data.streamSource; console.log('Success opening notification socket for stream ', streamSource); - + let ws = window.multiplexer.channel(connection); - + if (!connection) return; self.setState({ socket: ws.ws, @@ -160,22 +164,60 @@ class SkyquakeContainerStore { }) } + openProjectSocketSuccess = (connection) => { + var self = this; + var ws = window.multiplexer.channel(connection); + if (!connection) return; + self.setState({ + socket: ws.ws, + channelId: connection + }); + ws.onmessage = function(socket) { + try { + var data = JSON.parse(socket.data); + Utils.checkAuthentication(data.statusCode, function() { + self.closeSocket(); + }); + if (!_.isEqual(data.project, self.projects)) { + let user = self.user; + user.projects = data.project; + self.setState({ + user: user, + projects: data.project + }); + } + } catch(e) { + console.log('HIT an exception in openProjectSocketSuccess', e); + } + }; + } + getUserProfileSuccess = (user) => { + this.alt.actions.global.hideScreenLoader.defer(); + this.setState({user}) + } + selectActiveProjectSuccess = (projectId) => { + let user = this.user; + user.projectId = projectId; + this.setState({user}); + } //Notifications showNotification = (data) => { - if(typeof(data) == 'string') { - this.setState({ + let state = { displayNotification: true, - notificationMessage: data - }); + notificationMessage: data, + notificationType: 'error', + displayScreenLoader: false + } + if(typeof(data) == 'string') { + } else { - if(data.type == 'error') { - this.setState({ - displayNotification: true, - notificationMessage: data.msg, - displayScreenLoader: false - }); + if(!data) data = {}; + state.notificationMessage = data.msg || 'Something wrong occurred. Check the network tab and console logs for more information.'; + if(data.type) { + state.notificationType = data.type; } } + this.setState(state); } hideNotification = () => { this.setState({