discourse/app/assets/javascripts/admin/templates/user-badges.hbs
2019-01-21 13:08:26 +01:00

71 lines
2.4 KiB
Handlebars

<div class='admin-controls'>
<nav>
<ul class='nav nav-pills'>
<li>{{#link-to 'adminUser' user}}{{d-icon "caret-left"}} &nbsp;{{user.username}}{{/link-to}}</li>
</ul>
</nav>
</div>
{{#conditional-loading-spinner condition=loading}}
<div class='admin-container user-badges'>
<h2>{{i18n 'admin.badges.grant_badge'}}</h2>
<br>
{{#if noGrantableBadges}}
<p>{{i18n 'admin.badges.no_badges'}}</p>
{{else}}
<form class="form-horizontal">
<div>
<label>{{i18n 'admin.badges.badge'}}</label>
{{combo-box forceEscape=true filterable=true value=selectedBadgeId content=grantableBadges}}
</div>
<div>
<label>{{i18n 'admin.badges.reason'}}</label>
{{input type="text" value=badgeReason}}<br><small>{{i18n 'admin.badges.reason_help'}}</small>
</div>
<button class='btn btn-primary' {{action "grantBadge"}}>{{i18n 'admin.badges.grant'}}</button>
</form>
{{/if}}
<table id='user-badges'>
<tr>
<th>{{i18n 'admin.badges.badge'}}</th>
<th>{{i18n 'admin.badges.granted_by'}}</th>
<th class='reason'>{{i18n 'admin.badges.reason'}}</th>
<th>{{i18n 'admin.badges.granted_at'}}</th>
<th></th>
</tr>
{{#each groupedBadges as |userBadge|}}
<tr>
<td>{{user-badge badge=userBadge.badge count=userBadge.count}}</td>
<td>
{{#link-to 'adminUser' userBadge.badge.granted_by}}
{{avatar userBadge.granted_by imageSize="tiny"}}
{{userBadge.granted_by.username}}
{{/link-to}}
</td>
<td class='reason'>
{{#if userBadge.postUrl}}
<a href="{{unbound userBadge.postUrl}}">{{userBadge.topic_title}}</a>
{{/if}}
</td>
<td>{{age-with-tooltip userBadge.granted_at}}</td>
<td>
{{#if userBadge.grouped}}
<button class='btn' {{action "expandGroup" userBadge}}>{{{i18n 'admin.badges.expand'}}}</button>
{{else}}
<button class='btn btn-danger' {{action "revokeBadge" userBadge}}>{{i18n 'admin.badges.revoke'}}</button>
{{/if}}
</td>
</tr>
{{else}}
<tr>
<td colspan="5">
<p>{{i18n 'admin.badges.no_user_badges' name=user.username}}</p>
</td>
</tr>
{{/each}}
</table>
</div>
{{/conditional-loading-spinner}}