ore/app/views/users/invite/form.scala.html
@import ore.models.user.User
@import ore.OreConfig
@import ore.db.Model
@import ore.permission.role.RoleCategory
@import views.html.utils.userAvatar
@import util.syntax._
@(owner: User, loadedUsers: Seq[Model[User]] = Seq(), roleCategory: RoleCategory)(implicit messages: Messages, config: OreConfig)
<script type="text/javascript" src="@routes.Assets.versioned("javascripts/userSearch.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("javascripts/membersConfig.js")"></script>
<!-- Template row -->
<table style="display: none;">
<tbody>
<tr id="result-row">
<td>
<input type="hidden"/>
@userAvatar(None, clazz = "user-avatar-xs")
<i class="fas fa-times user-cancel"></i>
<a class="username" target="_blank" rel="noopener" href=""></a>
<span>@users.invite.roleSelect(roleCategory)</span>
</td>
</tr>
</tbody>
</table>
<!-- User not found alert (hidden) -->
<div class="alert alert-danger alert-dismissible" role="alert" style="display: none;">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
@messages("user.notFound") "<span class="error-username"></span>"
</div>
<div class="member-table-container">
<table class="table table-members">
<tbody>
<!-- Owner (not submitted) -->
<tr>
<td>
@userAvatar(Some(owner.name), owner.avatarUrl, clazz = "user-avatar-xs")
<strong>@owner.name</strong>
<span><i class="minor">@messages("project.owner")</i></span>
</td>
</tr>
@loadedUsers.map { user =>
<tr>
<td>
<input form="form-continue" type="hidden" value="@user.id" />
@userAvatar(Some(user.name), user.avatarUrl, clazz = "user-avatar-xs")
<a target="_blank" rel="noopener" href="@routes.Users.showProjects(user.name, None)">
@user.name
</a>
<span>@users.invite.roleSelect(roleCategory)</span>
</td>
</tr>
}
<!-- User search -->
<tr>
<td>@users.invite.userSearch()</td>
</tr>
</tbody>
</table>
</div>