open-vault/ui/app/templates/vault/cluster/access/identity/index.hbs
Matthew Irish c31671ce04
Bug fix - ui context menu (#6018)
* add dot-to-dash helper

* fix context menu on policy page and add test for deletion

* use dot-to-dash where we use confirm component

* fix acceptance test
2019-01-09 12:30:19 -06:00

129 lines
5.3 KiB
Handlebars

{{identity/entity-nav identityType=identityType model=model}}
{{#if model.meta.total}}
{{#each model as |item|}}
{{#linked-block
"vault.cluster.access.identity.show"
item.id
"details"
class="list-item-row"
data-test-identity-row=true
}}
<div class="columns is-mobile">
<div class="column is-7-tablet is-10-mobile">
{{#link-to
"vault.cluster.access.identity.show"
item.id
"details"
class="is-block has-text-black has-text-weight-semibold"
data-test-identity-link=true
}}{{i-con
glyph="role"
size=14
class="has-text-grey-light"
}}<span class="has-text-weight-semibold">{{item.name}}</span>{{/link-to}}
<div class="has-text-grey is-size-8">
{{item.id}}
</div>
</div>
<div class="column is-3 is-hidden-mobile">
{{#if item.aliases.length}}
{{pluralize item.aliases.length "alias"}}
{{/if}}
</div>
<div class="column has-text-right">
{{#popup-menu name="identity-item" onOpen=(action "reloadRecord" item)}}
<nav class="menu">
<ul class="menu-list">
<li class="action">
{{#link-to "vault.cluster.access.identity.show" item.id "details"}}
Details
{{/link-to}}
</li>
{{#if (or item.isReloading item.updatePath.isPending item.aliasPath.isPending)}}
<li class="action">
<button disabled type="button" class="link button is-loading is-transparent">
loading
</button>
</li>
{{else}}
{{#if item.canEdit}}
<li class="action">
{{#link-to "vault.cluster.access.identity.edit" item.id}}
Edit
{{/link-to}}
</li>
<li class="action">
{{#if item.disabled}}
<button type="button" {{action "toggleDisabled" item}} class="link">
Enable
</button>
{{else if (eq identityType 'entity')}}
{{#confirm-action
confirmButtonClasses="button is-primary"
confirmButtonText="Disable"
buttonClasses="link"
onConfirmAction=(action "toggleDisabled" item)
confirmMessage=(concat "Are you sure you want to disable " item.id "?")
showConfirm=(get this (concat "shouldDisable-" (dot-to-dash item.id)))
class=(if (get this (concat "shouldDisable-" (dot-to-dash item.id))) "message is-block is-warning is-outline")
containerClasses="message-body is-block"
messageClasses="is-block"
}}
Disable
{{/confirm-action}}
{{/if}}
</li>
{{/if}}
{{#if item.canAddAlias}}
<li class="action">
{{#link-to "vault.cluster.access.identity.aliases.add" (pluralize identityType) item.id}}
Create alias
{{/link-to}}
</li>
{{/if}}
{{#if item.canDelete}}
<li class="action">
{{#confirm-action
data-test-item-delete=true
confirmButtonClasses="button is-primary"
buttonClasses="link"
onConfirmAction=(action "delete" item)
confirmMessage=(concat "Are you sure you want to delete " item.id "?")
showConfirm=(get this (concat "shouldDelete-" (dot-to-dash item.id)))
class=(if (get this (concat "shouldDelete-" (dot-to-dash item.id))) "message is-block is-warning is-outline")
containerClasses="message-body is-block"
messageClasses="is-block"
}}
Delete
{{/confirm-action}}
</li>
{{/if}}
{{/if}}
</ul>
</nav>
{{/popup-menu}}
</div>
</div>
{{/linked-block}}
{{/each}}
{{#if (gt model.meta.lastPage 1) }}
{{list-pagination
page=model.meta.currentPage
lastPage=model.meta.lastPage
link="vault.cluster.access.identity.index"
}}
{{/if}}
{{else}}
<EmptyState
@title="No {{pluralize identityType}} yet"
@message="A list of {{pluralize identityType}} in this namespace will be listed here. Create your first {{identityType}} to get started."
>
{{#link-to "vault.cluster.access.identity.create" (pluralize identityType) tagName="button" class="link"}}
Create {{identityType}}
{{/link-to}}
<LearnLink @path="/vault/identity-access-management/iam-identity">
Learn More
</LearnLink>
</EmptyState>
{{/if}}