1
0
mirror of https://github.com/flarum/core.git synced 2025-10-12 15:34:26 +02:00
Files
php-flarum/js/forum/src/components/user-dropdown.js
2015-05-06 11:35:21 +09:30

66 lines
1.7 KiB
JavaScript

import Component from 'flarum/component';
import avatar from 'flarum/helpers/avatar';
import username from 'flarum/helpers/username';
import DropdownButton from 'flarum/components/dropdown-button';
import ActionButton from 'flarum/components/action-button';
import ItemList from 'flarum/utils/item-list';
import Separator from 'flarum/components/separator';
export default class UserDropdown extends Component {
view() {
var user = this.props.user;
return DropdownButton.component({
buttonClass: 'btn btn-default btn-naked btn-rounded btn-user',
menuClass: 'pull-right',
buttonContent: [avatar(user), ' ', m('span.label', username(user))],
items: this.items().toArray()
});
}
items() {
var items = new ItemList();
var user = this.props.user;
items.add('profile',
ActionButton.component({
icon: 'user',
label: 'Profile',
href: app.route('user', {username: user.username()}),
config: m.route
})
);
items.add('settings',
ActionButton.component({
icon: 'cog',
label: 'Settings',
href: app.route('settings'),
config: m.route
})
);
if (user.groups().some((group) => group.id() == 1)) {
items.add('administration',
ActionButton.component({
icon: 'wrench',
label: 'Administration',
href: app.config['base_url']+'/admin'
})
);
}
items.add('separator', Separator.component());
items.add('logOut',
ActionButton.component({
icon: 'sign-out',
label: 'Log Out',
onclick: app.session.logout.bind(app.session)
})
);
return items;
}
}