33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
import BaseComponent from './basic-component';
|
|
import { alias } from '@ember/object/computed';
|
|
import { inject as service } from '@ember/service';
|
|
|
|
export default BaseComponent.extend({
|
|
// elementId: 'navbar',
|
|
classNames: ['navbar', 'navbar-default', 'navbar-collapse'],
|
|
user: alias('ajax.user'),
|
|
websocket: service(),
|
|
didReceiveAttrs() {
|
|
const me = this;
|
|
const user = me.get('user');
|
|
if (!user) {
|
|
console.info('No user found in session storage, try to load from server.');
|
|
me.ajax.doGet(false, 'auth/info', (u) => {
|
|
me.set('user', u);
|
|
me.get('websocket').connect();
|
|
});
|
|
}
|
|
},
|
|
actions: {
|
|
logout() {
|
|
let me = this;
|
|
me.ajax.doPost(false, 'auth/logout', () => {
|
|
me.get('websocket').disconnect();
|
|
me.set('user', null);
|
|
me.get('message').alert('Sign out successfully');
|
|
me.get('router').transitionTo('login');
|
|
});
|
|
}
|
|
}
|
|
});
|