Adding switch to teams in admin console (#2789)
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
88cbfe7f1d
Коммит
80d7debf1a
@@ -4,6 +4,7 @@
|
|||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
import ReactDOM from 'react-dom';
|
import ReactDOM from 'react-dom';
|
||||||
|
|
||||||
|
import TeamStore from 'stores/team_store.jsx';
|
||||||
import Constants from 'utils/constants.jsx';
|
import Constants from 'utils/constants.jsx';
|
||||||
import * as GlobalActions from 'action_creators/global_actions.jsx';
|
import * as GlobalActions from 'action_creators/global_actions.jsx';
|
||||||
|
|
||||||
@@ -17,6 +18,12 @@ export default class AdminNavbarDropdown extends React.Component {
|
|||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.blockToggle = false;
|
this.blockToggle = false;
|
||||||
|
this.onTeamChange = this.onTeamChange.bind(this);
|
||||||
|
|
||||||
|
this.state = {
|
||||||
|
teams: TeamStore.getAll(),
|
||||||
|
teamMembers: TeamStore.getTeamMembers()
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
@@ -26,13 +33,50 @@ export default class AdminNavbarDropdown extends React.Component {
|
|||||||
this.blockToggle = false;
|
this.blockToggle = false;
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TeamStore.addChangeListener(this.onTeamChange);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
$(ReactDOM.findDOMNode(this.refs.dropdown)).off('hide.bs.dropdown');
|
$(ReactDOM.findDOMNode(this.refs.dropdown)).off('hide.bs.dropdown');
|
||||||
|
TeamStore.removeChangeListener(this.onTeamChange);
|
||||||
|
}
|
||||||
|
|
||||||
|
onTeamChange() {
|
||||||
|
this.setState({
|
||||||
|
teams: TeamStore.getAll(),
|
||||||
|
teamMembers: TeamStore.getTeamMembers()
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
var teams = [];
|
||||||
|
|
||||||
|
if (this.state.teamMembers && this.state.teamMembers.length > 0) {
|
||||||
|
teams.push(
|
||||||
|
<li
|
||||||
|
key='teamDiv'
|
||||||
|
className='divider'
|
||||||
|
></li>
|
||||||
|
);
|
||||||
|
|
||||||
|
for (var index in this.state.teamMembers) {
|
||||||
|
if (this.state.teamMembers.hasOwnProperty(index)) {
|
||||||
|
var teamMember = this.state.teamMembers[index];
|
||||||
|
var team = this.state.teams[teamMember.team_id];
|
||||||
|
teams.push(
|
||||||
|
<li key={'team_' + team.name}>
|
||||||
|
<Link
|
||||||
|
to={'/' + team.name + '/channels/town-square'}
|
||||||
|
>
|
||||||
|
{team.display_name}
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ul className='nav navbar-nav navbar-right'>
|
<ul className='nav navbar-nav navbar-right'>
|
||||||
<li
|
<li
|
||||||
@@ -68,6 +112,11 @@ export default class AdminNavbarDropdown extends React.Component {
|
|||||||
/>
|
/>
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
|
{teams}
|
||||||
|
<li
|
||||||
|
key='teamDiv'
|
||||||
|
className='divider'
|
||||||
|
></li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a
|
||||||
href='#'
|
href='#'
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ export default class NavbarDropdown extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.state.teamMembers && this.state.teamMembers.length > 0) {
|
if (this.state.teamMembers && this.state.teamMembers.length > 1) {
|
||||||
teams.push(
|
teams.push(
|
||||||
<li
|
<li
|
||||||
key='teamDiv'
|
key='teamDiv'
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user