/* * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ import React from 'react'; import { Link } from 'react-router'; import Utils from 'utils/utils.js'; import Crouton from 'react-crouton'; import 'style/common.scss'; import './skyquakeNav.scss'; import SelectOption from '../form_controls/selectOption.jsx'; import {FormSection} from '../form_controls/formControls.jsx'; import {isRBACValid, SkyquakeRBAC} from 'widgets/skyquake_rbac/skyquakeRBAC.jsx'; //Temporary, until api server is on same port as webserver var rw = require('utils/rw.js'); var API_SERVER = rw.getSearchParams(window.location).api_server; var UPLOAD_SERVER = rw.getSearchParams(window.location).upload_server; // // Internal classes/functions // class LogoutAppMenuItem extends React.Component { handleLogout() { Utils.clearAuthentication(); } render() { return (

Logout

); } } class SelectProject extends React.Component { constructor(props) { super(props); } selectProject(e) { let value = JSON.parse(e.currentTarget.value); console.log('selected project', value) } render() { let props = this.props; let currentValue = JSON.stringify(props.currentProject); let projects = this.props.projects && this.props.projects.map((p,i) => { return { label: p.name, value: p.name } }); let hasProjects = (this.props.projects && (this.props.projects.length > 0)) return (
{ hasProjects ? 'Project:' : 'No Projects Assigned' } { hasProjects ? : null }
) } } class UserNav extends React.Component { constructor(props) { super(props); } handleLogout() { Utils.clearAuthentication(); } selectProject(e) { let value = JSON.parse(e.currentTarget.value) console.log('selected project', value) } render() { let props = this.props; let userProfileLink = ''; this.props.nav['user_management'] && this.props.nav['user_management'].routes.map((r) => { if(r.unique) { userProfileLink = returnLinkItem(r, props.currentUser) } }) return (

USER: {userProfileLink}

) } } UserNav.defaultProps = { projects: [ ] } // // Exported classes and functions // // /** * Skyquake Nav Component. Provides navigation functionality between all plugins */ export default class skyquakeNav extends React.Component { constructor(props) { super(props); this.state = {}; this.state.validateErrorEvent = 0; this.state.validateErrorMsg = ''; } componentDidMount() { this.props.store.openProjectSocket(); this.props.store.getUserProfile(); } validateError = (msg) => { this.setState({ validateErrorEvent: true, validateErrorMsg: msg }); } validateReset = () => { this.setState({ validateErrorEvent: false }); } returnCrouton = () => { return