FEATURE: user card shows staff if a user is staged and lets them check the email address
This commit is contained in:
parent
e0dc4ea4fc
commit
3f58b18dab
|
@ -7,12 +7,13 @@ import DiscourseURL from 'discourse/lib/url';
|
|||
import User from 'discourse/models/user';
|
||||
import { userPath } from 'discourse/lib/url';
|
||||
import { durationTiny } from 'discourse/lib/formatter';
|
||||
import CanCheckEmails from 'discourse/mixins/can-check-emails';
|
||||
|
||||
const clickOutsideEventName = "mousedown.outside-user-card";
|
||||
const clickDataExpand = "click.discourse-user-card";
|
||||
const clickMention = "click.discourse-user-mention";
|
||||
|
||||
export default Ember.Component.extend(CleansUp, {
|
||||
export default Ember.Component.extend(CleansUp, CanCheckEmails, {
|
||||
elementId: 'user-card',
|
||||
classNameBindings: ['visible:show', 'showBadges', 'hasCardBadgeImage', 'user.card_background::no-bg'],
|
||||
allowBackgrounds: setting('allow_profile_backgrounds'),
|
||||
|
@ -30,6 +31,7 @@ export default Ember.Component.extend(CleansUp, {
|
|||
showDelete: Ember.computed.and("viewingAdmin", "showName", "user.canBeDeleted"),
|
||||
linkWebsite: Ember.computed.not('user.isBasic'),
|
||||
hasLocationOrWebsite: Ember.computed.or('user.location', 'user.website_name'),
|
||||
showCheckEmail: Ember.computed.and('user.staged', 'canCheckEmails'),
|
||||
|
||||
visible: false,
|
||||
user: null,
|
||||
|
@ -291,6 +293,10 @@ export default Ember.Component.extend(CleansUp, {
|
|||
showUser() {
|
||||
this.sendAction('showUser', this.get('user'));
|
||||
this._close();
|
||||
},
|
||||
|
||||
checkEmail(user) {
|
||||
user.checkEmail();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -31,6 +31,10 @@
|
|||
<h2>{{user.title}}</h2>
|
||||
{{/if}}
|
||||
|
||||
{{#if showCheckEmail}}
|
||||
<h2 class="staged">{{i18n 'user.staged'}}</h2>
|
||||
{{/if}}
|
||||
|
||||
{{plugin-outlet name="user-card-post-names" args=(hash user=user) tagName='div'}}
|
||||
</span>
|
||||
</div>
|
||||
|
@ -125,6 +129,16 @@
|
|||
<span>({{i18n 'time_read_recently' time_read=recentTimeRead}})</span>
|
||||
{{/if}}
|
||||
</h3>
|
||||
{{#if showCheckEmail}}
|
||||
<h3 class="email">
|
||||
{{i18n 'user.email.title'}}:
|
||||
{{#if user.email}}
|
||||
{{user.email}}
|
||||
{{else}}
|
||||
{{d-button action="checkEmail" actionParam=user icon="envelope-o" label="admin.users.check_email.text" class="btn-primary"}}
|
||||
{{/if}}
|
||||
</h3>
|
||||
{{/if}}
|
||||
{{plugin-outlet name="user-card-metadata" args=(hash user=user)}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
|
@ -41,6 +41,9 @@ $user_card_background: $secondary;
|
|||
a.card-huge-avatar {
|
||||
outline: none;
|
||||
}
|
||||
.staged {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
&.no-bg {
|
||||
|
@ -255,4 +258,8 @@ $user_card_background: $secondary;
|
|||
font-size: 2.143em;
|
||||
i {color: $user_card_primary;}
|
||||
}
|
||||
|
||||
.metadata .email .btn {
|
||||
padding: 2px 12px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,7 +71,8 @@ class UserSerializer < BasicUserSerializer
|
|||
:primary_group_name,
|
||||
:primary_group_flair_url,
|
||||
:primary_group_flair_bg_color,
|
||||
:primary_group_flair_color
|
||||
:primary_group_flair_color,
|
||||
:staged
|
||||
|
||||
has_one :invited_by, embed: :object, serializer: BasicUserSerializer
|
||||
has_many :groups, embed: :object, serializer: BasicGroupSerializer
|
||||
|
@ -411,4 +412,8 @@ class UserSerializer < BasicUserSerializer
|
|||
time = object.recent_time_read
|
||||
end
|
||||
|
||||
def include_staged?
|
||||
scope.is_staff?
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -665,6 +665,7 @@ en:
|
|||
api_approved: "Approved:"
|
||||
theme: "Theme"
|
||||
home: "Default Home Page"
|
||||
staged: "Staged"
|
||||
|
||||
staff_counters:
|
||||
flags_given: "helpful flags"
|
||||
|
|
Loading…
Reference in New Issue