diff --git a/src/app.js b/src/app.js index 0a895b7..fe71133 100644 --- a/src/app.js +++ b/src/app.js @@ -46,6 +46,11 @@ class App extends React.Component { constructor(props) { super(props); + + AppDispatcher.dispatch({ + type: 'config/load', + }); + this.state = { showSidebarMenu: false, } diff --git a/src/common/data-managers/notifications-factory.js b/src/common/data-managers/notifications-factory.js index ece1e8b..a032db0 100644 --- a/src/common/data-managers/notifications-factory.js +++ b/src/common/data-managers/notifications-factory.js @@ -138,6 +138,14 @@ class NotificationsFactory { }; } + static ACTION_INFO() { + return { + title: 'Action successfully requested', + level: 'info' + }; + } + + } export default NotificationsFactory; diff --git a/src/common/menu-sidebar.js b/src/common/menu-sidebar.js index 1b7208e..55f1580 100644 --- a/src/common/menu-sidebar.js +++ b/src/common/menu-sidebar.js @@ -18,20 +18,58 @@ import React from 'react'; import { NavLink } from 'react-router-dom'; import Branding from '../branding/branding'; +import { Container } from 'flux/utils'; +import LoginStore from '../user/login-store'; +import AppDispatcher from './app-dispatcher'; class SidebarMenu extends React.Component { + constructor(props) { + super(props); + + this.state = { + externalAuth: false, + logoutLink: "", + } + } + + static getStores() { + return [LoginStore] + } + + static calculateState(prevState, props) { + let config = LoginStore.getState().config; + let logout_url = _.get(config, ['authentication', 'logout_url']); + + if (logout_url) { + return { + externalAuth: true, + logoutLink: logout_url, + } + } + + return { + externalAuth: false, + logoutLink: "/logout", + } + } + + logout() { + AppDispatcher.dispatch({ + type: 'users/logout' + }); + // The Login Store is deleted automatically + + // discard login token and current User + localStorage.setItem('token', ''); + localStorage.setItem('currentUser', ''); + } + render() { const brand = Branding.instance.brand; console.log(brand.links) let links = [] - /*++++ - for (var key of Object.keys(brand.links) ) { - console.log(`${key}: ${brand.links[key]}`); - links.push(