X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fframework%2Fwidgets%2Fskyquake_container%2FskyquakeContainerStore.js;h=87651e59c6de46cc94d4b7ebe1b6c748f4bcd779;hb=2da8b7a246ba17396c5bc218a0b7f1685fb8d304;hp=07010cde57c066a60d7ad11ab0a8f529b394e87a;hpb=abf00ef39ee93f2a7ff05a4432eb3a50a88a487e;p=osm%2FUI.git diff --git a/skyquake/framework/widgets/skyquake_container/skyquakeContainerStore.js b/skyquake/framework/widgets/skyquake_container/skyquakeContainerStore.js index 07010cde5..87651e59c 100644 --- a/skyquake/framework/widgets/skyquake_container/skyquakeContainerStore.js +++ b/skyquake/framework/widgets/skyquake_container/skyquakeContainerStore.js @@ -21,9 +21,11 @@ import Alt from './skyquakeAltInstance.js'; import SkyquakeContainerSource from './skyquakeContainerSource.js'; import SkyquakeContainerActions from './skyquakeContainerActions'; let Utils = require('utils/utils.js'); -import _ from 'lodash'; +import _indexOf from 'lodash/indexOf'; +import _isEqual from 'lodash/isEqual'; //Temporary, until api server is on same port as webserver -var rw = require('utils/rw.js'); +import rw from 'utils/rw.js'; + var API_SERVER = rw.getSearchParams(window.location).api_server; var UPLOAD_SERVER = rw.getSearchParams(window.location).upload_server; @@ -103,7 +105,7 @@ class SkyquakeContainerStore { } else { // Temp to test before adding multi-sources data.notification.source = streamSource; - if (_.indexOf(self.notifications, data.notification) == -1) { + if (_indexOf(self.notifications, data.notification) == -1) { // newly appreared event. // Add to the notifications list and setState self.notifications.unshift(data.notification); @@ -178,18 +180,29 @@ class SkyquakeContainerStore { Utils.checkAuthentication(data.statusCode, function() { self.closeSocket(); }); - - self.setState({ - projects: data.project - }); + 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}); + window.location.reload(true); + } //Notifications showNotification = (data) => { let state = { @@ -201,7 +214,8 @@ class SkyquakeContainerStore { if(typeof(data) == 'string') { } else { - state.notificationMessage = data.msg; + 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; } @@ -265,4 +279,4 @@ function getCurrentPlugin() { } } -export default Alt.createStore(SkyquakeContainerStore); +export default Alt.createStore(SkyquakeContainerStore, 'SkyquakeContainerStore');