/* * * 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 import rw from 'utils/rw.js'; var API_SERVER = rw.getSearchParams(window.location).api_server; var DOWNLOAD_SERVER = rw.getSearchParams(window.location).dev_download_server; // // Internal classes/functions // 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 hasProjects = props.projects; let userAssignedProjects = hasProjects && (props.projects.length > 0) return (

{ hasProjects ? (userAssignedProjects ? 'PROJECT: ' + props.currentProject : 'No Projects Assigned') : 'Projects Loading...' } { userAssignedProjects ? : null }

{ userAssignedProjects ? : 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 = null; this.props.nav['user_management'] && this.props.nav['user_management'].routes.map((r) => { if (r.unique) { userProfileLink = r; } }) return !userProfileLink ? null : (

USERNAME: {returnLinkItem(userProfileLink, props.currentUser)}

) } } 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(); } validateError = (msg) => { this.setState({ validateErrorEvent: true, validateErrorMsg: msg }); } validateReset = () => { this.setState({ validateErrorEvent: false }); } returnCrouton = () => { return