mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	Merge pull request #51 from Unleash/github-link-into-menu-drawer
github link into menu + username tooltip + visual tweaks
This commit is contained in:
		
						commit
						e8058d426b
					
				@ -4,7 +4,8 @@ import { Layout, Drawer, Header, Navigation, Content,
 | 
			
		||||
    Grid, Cell, Icon,
 | 
			
		||||
} from 'react-mdl';
 | 
			
		||||
import { Link } from 'react-router';
 | 
			
		||||
import style from './styles.scss';
 | 
			
		||||
import styles from './styles.scss';
 | 
			
		||||
import { styles as commonStyles } from './common';
 | 
			
		||||
import ErrorContainer from './error/error-container';
 | 
			
		||||
 | 
			
		||||
import UserContainer from './user/user-container';
 | 
			
		||||
@ -100,30 +101,49 @@ export default class App extends Component {
 | 
			
		||||
                return [0, 0];
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
        const createListItem = (path, caption, icon) =>
 | 
			
		||||
            <Link
 | 
			
		||||
                to={path}
 | 
			
		||||
                className={this.context.router.isActive(path) ? style.active : ''}>
 | 
			
		||||
                {icon && <Icon name={icon} />} {caption}
 | 
			
		||||
            </Link>;
 | 
			
		||||
        const createListItem = (path, caption, icon, isDrawerNavigation = false) => {
 | 
			
		||||
            const linkColor = isDrawerNavigation &&
 | 
			
		||||
                this.context.router.isActive(path) ? 'mdl-color-text--black' : 'mdl-color-text--grey-900';
 | 
			
		||||
            const iconColor = isDrawerNavigation &&
 | 
			
		||||
                this.context.router.isActive(path) ? 'mdl-color-text--black' : 'mdl-color-text--grey-600';
 | 
			
		||||
            return (
 | 
			
		||||
                <Link
 | 
			
		||||
                    to={path}
 | 
			
		||||
                    className={isDrawerNavigation && [styles.navigationLink, linkColor].join(' ')}>
 | 
			
		||||
                    {icon && <Icon name={icon} className={isDrawerNavigation && [styles.navigationIcon, iconColor].join(' ')}/>}{caption}
 | 
			
		||||
                </Link>
 | 
			
		||||
            );
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        return (
 | 
			
		||||
            <div style={{}}>
 | 
			
		||||
            <div>
 | 
			
		||||
                <UserContainer />
 | 
			
		||||
                <Layout fixedHeader>
 | 
			
		||||
                    <Header title={this.getTitleWithLinks()}>
 | 
			
		||||
                        <Navigation>
 | 
			
		||||
                            <a href="https://github.com/Unleash" target="_blank">Github</a>
 | 
			
		||||
                            <ShowUserContainer />
 | 
			
		||||
                        </Navigation>
 | 
			
		||||
                    </Header>
 | 
			
		||||
                    <Drawer title="Unleash Admin">
 | 
			
		||||
                        <Navigation>
 | 
			
		||||
                            {createListItem('/features', 'Feature toggles', 'list')}
 | 
			
		||||
                            {createListItem('/strategies', 'Strategies', 'extension')}
 | 
			
		||||
                            {createListItem('/history', 'Event history', 'history')}
 | 
			
		||||
                            {createListItem('/archive', 'Archived toggles', 'archive')}
 | 
			
		||||
                            {createListItem('/applications', 'Applications', 'apps')}
 | 
			
		||||
                    <Drawer className="mdl-color--white">
 | 
			
		||||
                        <span className={[styles.title, 'mdl-layout-title'].join(' ')}>Unleash</span>
 | 
			
		||||
                        <hr className={commonStyles.divider}/>
 | 
			
		||||
                        <Navigation className={styles.navigation}>
 | 
			
		||||
                            {createListItem('/features', 'Feature toggles', 'list', true)}
 | 
			
		||||
                            {createListItem('/strategies', 'Strategies', 'extension', true)}
 | 
			
		||||
                            {createListItem('/history', 'Event history', 'history', true)}
 | 
			
		||||
                            {createListItem('/archive', 'Archived toggles', 'archive', true)}
 | 
			
		||||
                            {createListItem('/applications', 'Applications', 'apps', true)}
 | 
			
		||||
                        </Navigation>
 | 
			
		||||
                        <hr className={commonStyles.divider}/>
 | 
			
		||||
                        <Navigation className={styles.navigation}>
 | 
			
		||||
                            <a href="https://github.com/Unleash" target="_blank" className={[styles.navigationLink, 'mdl-color-text--grey-900'].join(' ')}>
 | 
			
		||||
                                <i className={[
 | 
			
		||||
                                    'material-icons',
 | 
			
		||||
                                    styles.navigationIcon,
 | 
			
		||||
                                    styles.githubIcon,
 | 
			
		||||
                                    'mdl-color-text--grey-600',
 | 
			
		||||
                                ].join(' ')}/>GitHub
 | 
			
		||||
                            </a>
 | 
			
		||||
                        </Navigation>
 | 
			
		||||
                    </Drawer>
 | 
			
		||||
                    <ScrollContainer scrollKey="container" shouldUpdateScroll={shouldUpdateScroll}>
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,8 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.divider {
 | 
			
		||||
    border-color: #e1e1e1;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    border-color: rgba(0,0,0,.12);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media (max-width: 960px) {
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ const StrategyChipItem = ({ strategy }) => (
 | 
			
		||||
 | 
			
		||||
// TODO what about "missing" strategies here?
 | 
			
		||||
const StrategiesList = ({ strategies }) => (
 | 
			
		||||
    <div style={{ verticalAlign: 'middle' }}>With {strategies.length > 1 ? 'strategies' : 'strategy'} {
 | 
			
		||||
    <div style={{ verticalAlign: 'middle', paddingTop: '14px' }}>With {strategies.length > 1 ? 'strategies' : 'strategy'} {
 | 
			
		||||
        strategies.map((strategy, i) => <StrategyChipItem key={i}  strategy={strategy} />)
 | 
			
		||||
    }</div>
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
@ -1,17 +1,31 @@
 | 
			
		||||
.container {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    right: 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: auto;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
.title {
 | 
			
		||||
    padding-left: 24px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navigation {
 | 
			
		||||
    .active {
 | 
			
		||||
        background-color: #EEE;
 | 
			
		||||
@media screen and (max-width: 1024px) {
 | 
			
		||||
    .title {
 | 
			
		||||
        padding-left: 16px !important;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navigation {
 | 
			
		||||
    padding: 8px 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navigationLink {
 | 
			
		||||
    padding: 12px 24px !important;
 | 
			
		||||
}
 | 
			
		||||
@media screen and (max-width: 1024px) {
 | 
			
		||||
    .navigationLink {
 | 
			
		||||
        padding: 12px 16px !important;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navigationIcon {
 | 
			
		||||
    margin-right: 32px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.githubIcon {
 | 
			
		||||
    width: 24px;
 | 
			
		||||
    height: 24px;
 | 
			
		||||
    background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiPgogICAgPHBhdGggZmlsbD0iIzc1NzU3NSIgZD0iTTEyLDJBMTAsMTAgMCAwLDAgMiwxMkMyLDE2LjQyIDQuODcsMjAuMTcgOC44NCwyMS41QzkuMzQsMjEuNTggOS41LDIxLjI3IDkuNSwyMUM5LjUsMjAuNzcgOS41LDIwLjE0IDkuNSwxOS4zMUM2LjczLDE5LjkxIDYuMTQsMTcuOTcgNi4xNCwxNy45N0M1LjY4LDE2LjgxIDUuMDMsMTYuNSA1LjAzLDE2LjVDNC4xMiwxNS44OCA1LjEsMTUuOSA1LjEsMTUuOUM2LjEsMTUuOTcgNi42MywxNi45MyA2LjYzLDE2LjkzQzcuNSwxOC40NSA4Ljk3LDE4IDkuNTQsMTcuNzZDOS42MywxNy4xMSA5Ljg5LDE2LjY3IDEwLjE3LDE2LjQyQzcuOTUsMTYuMTcgNS42MiwxNS4zMSA1LjYyLDExLjVDNS42MiwxMC4zOSA2LDkuNSA2LjY1LDguNzlDNi41NSw4LjU0IDYuMiw3LjUgNi43NSw2LjE1QzYuNzUsNi4xNSA3LjU5LDUuODggOS41LDcuMTdDMTAuMjksNi45NSAxMS4xNSw2Ljg0IDEyLDYuODRDMTIuODUsNi44NCAxMy43MSw2Ljk1IDE0LjUsNy4xN0MxNi40MSw1Ljg4IDE3LjI1LDYuMTUgMTcuMjUsNi4xNUMxNy44LDcuNSAxNy40NSw4LjU0IDE3LjM1LDguNzlDMTgsOS41IDE4LjM4LDEwLjM5IDE4LjM4LDExLjVDMTguMzgsMTUuMzIgMTYuMDQsMTYuMTYgMTMuODEsMTYuNDFDMTQuMTcsMTYuNzIgMTQuNSwxNy4zMyAxNC41LDE4LjI2QzE0LjUsMTkuNiAxNC41LDIwLjY4IDE0LjUsMjFDMTQuNSwyMS4yNyAxNC42NiwyMS41OSAxNS4xNywyMS41QzE5LjE0LDIwLjE2IDIyLDE2LjQyIDIyLDEyQTEwLDEwIDAgMCwwIDEyLDJaIiAvPgo8L3N2Zz4=);
 | 
			
		||||
}
 | 
			
		||||
@ -1,4 +1,5 @@
 | 
			
		||||
import React, { PropTypes } from 'react';
 | 
			
		||||
import { Icon, Tooltip } from 'react-mdl';
 | 
			
		||||
 | 
			
		||||
export default class ShowUserComponent extends React.Component {
 | 
			
		||||
    static propTypes () {
 | 
			
		||||
@ -15,9 +16,10 @@ export default class ShowUserComponent extends React.Component {
 | 
			
		||||
 | 
			
		||||
    render () {
 | 
			
		||||
        return (
 | 
			
		||||
            <a className="mdl-navigation__link" href="#edit-user" onClick={this.openEdit} style={{}}>
 | 
			
		||||
                Username: 
 | 
			
		||||
                <strong>{this.props.user.userName || 'Unknown'}</strong>
 | 
			
		||||
            <a className="mdl-navigation__link" href="#edit-user" onClick={this.openEdit}>
 | 
			
		||||
                <Tooltip label={this.props.user.userName || 'Unknown'} large>
 | 
			
		||||
                    <Icon name="account_circle"/>
 | 
			
		||||
                </Tooltip>
 | 
			
		||||
            </a>
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user