|
@@ -0,0 +1,70 @@
|
|
|
|
+import Ember from 'ember';
|
|
|
|
+
|
|
|
|
+export default Ember.Component.extend({
|
|
|
|
+ classNames: 'user-state',
|
|
|
|
+ classNameBindings: [
|
|
|
|
+ 'user.state.is_banned:user-banned',
|
|
|
|
+ 'user.state.is_hidden:user-hidden',
|
|
|
|
+ 'user.state.is_online_hidden:user-online',
|
|
|
|
+ 'user.state.is_offline_hidden:user-offline',
|
|
|
|
+ 'user.state.is_online:user-online',
|
|
|
|
+ 'user.state.is_offline:user-offline'
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ attributeBindings: ['title'],
|
|
|
|
+
|
|
|
|
+ title: function() {
|
|
|
|
+ if (this.get('user.state.is_banned')) {
|
|
|
|
+ if (this.get('user.state.banned_until')) {
|
|
|
|
+ return interpolate(gettext('%(username)s\'s is banned until %(ban_expires)s.'), {
|
|
|
|
+ 'username': this.get('user.username'),
|
|
|
|
+ 'ban_expires': moment(this.get('user.state.banned_until')).format('LL, LT')
|
|
|
|
+ }, true);
|
|
|
|
+ } else {
|
|
|
|
+ return interpolate(gettext('%(username)s\'s is banned.'), {
|
|
|
|
+ 'username': this.get('user.username')
|
|
|
|
+ }, true);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (this.get('user.state.is_hidden')) {
|
|
|
|
+ return interpolate(gettext('%(username)s\'s activity is hidden.'), {
|
|
|
|
+ 'username': this.get('user.username')
|
|
|
|
+ }, true);
|
|
|
|
+
|
|
|
|
+ } else if (this.get('user.state.is_online_hidden')) {
|
|
|
|
+ return interpolate(gettext('%(username)s is online and hidden.'), {
|
|
|
|
+ 'username': this.get('user.username')
|
|
|
|
+ }, true);
|
|
|
|
+
|
|
|
|
+ } else if (this.get('user.state.is_offline_hidden')) {
|
|
|
|
+ return interpolate(gettext('%(username)s was last seen hidden %(last_click)s.'), {
|
|
|
|
+ 'username': this.get('user.username'),
|
|
|
|
+ 'last_click': this.get('lastClick').fromNow()
|
|
|
|
+ }, true);
|
|
|
|
+
|
|
|
|
+ } else if (this.get('user.state.is_online')) {
|
|
|
|
+ return interpolate(gettext('%(username)s is online.'), {
|
|
|
|
+ 'username': this.get('user.username')
|
|
|
|
+ }, true);
|
|
|
|
+
|
|
|
|
+ } else if (this.get('user.state.is_offline')) {
|
|
|
|
+ return interpolate(gettext('%(username)s was last seen %(last_click)s.'), {
|
|
|
|
+ 'username': this.get('user.username'),
|
|
|
|
+ 'last_click': this.get('lastClick').fromNow()
|
|
|
|
+ }, true);
|
|
|
|
+ }
|
|
|
|
+ }.property(
|
|
|
|
+ 'user.state.is_banned',
|
|
|
|
+ 'user.state.is_hidden',
|
|
|
|
+ 'user.state.is_online_hidden',
|
|
|
|
+ 'user.state.is_offline_hidden',
|
|
|
|
+ 'user.state.is_online',
|
|
|
|
+ 'user.state.is_offline',
|
|
|
|
+ 'user.state.banned_until',
|
|
|
|
+ 'lastClick'
|
|
|
|
+ ),
|
|
|
|
+
|
|
|
|
+ lastClick: function() {
|
|
|
|
+ return moment(this.get('user.state.last_click'));
|
|
|
|
+ }.property('user.state.last_click', 'clock.tick')
|
|
|
|
+});
|