app/views/accounts.scala.html (112 lines of code) (raw):
@import com.gu.janus.model.{AwsAccount, JanusData}
@import com.gu.googleauth.UserIdentity
@import play.api.Mode
@import scala.util.Try
@import com.gu.janus.model.Permission
@import scala.util.Failure
@import scala.util.Success
@import logic.ViewHelpers
@(accountOwners: List[(AwsAccount, List[(String, Set[Permission])], Try[String])], user: UserIdentity, janusData: JanusData)(implicit mode: Mode, assetsFinder: AssetsFinder)
@main("Accounts", Some(user), janusData) {
<div class="container" xmlns="http://www.w3.org/1999/html">
<h1 class="header orange-text">Accounts</h1>
@janusData.permissionsRepo match {
case Some(permissionsRepo) => {
<p>
Refer to <a href="@permissionsRepo">Janus' configuration</a> for full details on who has what access to each AWS account.
</p>
}
case None => {
<p>Refer to Janus' configuration for full details on who has what access to each AWS account.</p>
}
}
<ul class="collapsible collapsible-accordion">
@for((account, owners, tryAccountNumber) <- accountOwners) {
<li class="owners__container">
<div class="owners__header collapsible-header">
<span>
@account.name
</span>
<div class="right">
<span class="chip">
@tryAccountNumber match {
case Failure(_) => {
No account number
}
case Success(accountNumber) => {
@accountNumber
}
}
</span>
<div class="owner-count right-align">
@owners.size
<i class="material-icons tiny minor-header-icon">person</i>
</div>
</div>
</div>
<div class="account-summary__container collapsible-body">
<div class="row">
<div class="col s12">
<a class="account-summary__button--audit btn grey" href="/audit/account/@account.authConfigKey">
Audit trail <i class="material-icons">assignment</i>
</a>
@if(owners.isEmpty) {
<p>There are no Janus-managed users for this account.</p>
} else {
@* We generate 1, 2 and 3 col versions of this and show/hide responsively *@
<div class="hide-on-med-and-up">
@* 1 column on small devices *@
<div class="row">
<div class="col s12">
<ul class="collection">
@for(user <- owners) {
<li class="collection-item">@user._1</li>
}
</ul>
</div>
</div>
</div>
<div class="show-on-medium hide-on-large-only hide-on-small-and-down">
@* 2 columns on medium devices *@
<div class="row">
<ul class="collection col m6">
@for(user <- ViewHelpers.getColumn(2, owners, 0)) {
<li class="collection-item">@user._1</li>
}
</ul>
<ul class="collection col m6">
@for(user <- ViewHelpers.getColumn(2, owners, 1)) {
<li class="collection-item">@user._1</li>
}
</ul>
</div>
</div>
<div class="hide-on-med-and-down">
@* 3 columns on large devices *@
<div class="row">
<ul class="collection col l4">
@for(user <- ViewHelpers.getColumn(3, owners, 0)) {
<li class="collection-item">@user._1</li>
}
</ul>
<ul class="collection col l4">
@for(user <- ViewHelpers.getColumn(3, owners, 1)) {
<li class="collection-item">@user._1</li>
}
</ul>
<ul class="collection col l4">
@for(user <- ViewHelpers.getColumn(3, owners, 2)) {
<li class="collection-item">@user._1</li>
}
</ul>
</div>
</div>
}
</div>
</div>
</div>
</li>
}
</ul>
</div>
}