mirror of
https://github.com/status-im/consul.git
synced 2025-03-02 22:30:43 +00:00
Migrate roughly half of the base components into base Adds a target for easily formatting CSS Further CSS amends/migration (#5921) 1. tooltips within tables where a slightly bit troublesome due to a mix of `inline-flex`, `overflow` and the need for truncation. This refineds tooltips a slight bit more to work 'everywhere'. 2. We also move tooltip to use the correct color and min-width from structure, but we overwrite the min-width here until we get confirmation on widths/alignment of text within a tooltip. 3. Tiny fixes for breadcrumbs and toggle-buttons in tabular listings 4. Now we inline-flex our table cells, it means it is impossible to truncate text without wrapping it in another element. This wraps all Description like text in `<p>` tags. Generally the first column of text is already wrapped in an `<a>` tag. Other items such as consul tags and policy names etc get 'cutoff' rather than truncated. 5. We are now using all the icons from `@hashicorp/structure-icons`
138 lines
5.9 KiB
Handlebars
138 lines
5.9 KiB
Handlebars
{{#app-view class=(concat 'token ' (if (and isEnabled (not isAuthorized)) 'edit' 'list')) loading=isLoading authorized=isAuthorized enabled=isEnabled}}
|
|
{{#block-slot 'notification' as |status type subject|}}
|
|
{{partial 'dc/acls/tokens/notifications'}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'header'}}
|
|
<h1>
|
|
Access Controls
|
|
</h1>
|
|
{{#if isAuthorized }}
|
|
{{partial 'dc/acls/nav'}}
|
|
{{/if}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'disabled'}}
|
|
{{partial 'dc/acls/disabled'}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'authorization'}}
|
|
{{partial 'dc/acls/authorization'}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'actions'}}
|
|
<a data-test-create href="{{href-to 'dc.acls.tokens.create'}}" class="type-create">Create</a>
|
|
{{/block-slot}}
|
|
{{#block-slot 'content'}}
|
|
{{#if (gt items.length 0) }}
|
|
<form class="filter-bar">
|
|
{{freetext-filter searchable=searchable value=s placeholder="Search"}}
|
|
</form>
|
|
{{/if}}
|
|
{{#if (token/is-legacy items)}}
|
|
<p data-test-notification-update class="notice info"><strong>Update.</strong> We have upgraded our ACL System to allow the creation of reusable policies that can be applied to tokens. Read more about the changes and how to upgrade legacy tokens in our <a href="{{env 'CONSUL_DOCUMENTATION_URL'}}/guides/acl-migrate-tokens.html" target="_blank" rel="noopener noreferrer">documentation</a>.</p>
|
|
{{/if}}
|
|
{{#changeable-set dispatcher=searchable}}
|
|
{{#block-slot 'set' as |filtered|}}
|
|
{{#tabular-collection
|
|
items=(sort-by 'CreateTime:desc' filtered) as |item index|
|
|
}}
|
|
{{#block-slot 'header'}}
|
|
<th>Accessor ID</th>
|
|
<th>Scope</th>
|
|
<th>Description</th>
|
|
<th>Roles & Policies</th>
|
|
<th> </th>
|
|
{{/block-slot}}
|
|
{{#block-slot 'row'}}
|
|
<td data-test-token="{{item.AccessorID}}" class={{if (eq item.AccessorID token.AccessorID) 'me' }}>
|
|
<a href={{href-to 'dc.acls.tokens.edit' item.AccessorID}}>{{truncate item.AccessorID 8 false}}</a>
|
|
</td>
|
|
<td>
|
|
{{if item.Local 'local' 'global' }}
|
|
</td>
|
|
<td data-test-description>
|
|
<p>{{default item.Description item.Name}}</p>
|
|
</td>
|
|
<td colspan={{if (not-eq item.AccessorID token.AccessorID) '2' }}>
|
|
{{#if (token/is-legacy item) }}
|
|
<p>Legacy tokens have embedded rules.</p>
|
|
{{ else }}
|
|
{{#each (append item.Policies item.Roles) as |item|}}
|
|
<strong data-test-policy class={{policy/typeof item}}>{{item.Name}}</strong>
|
|
{{/each}}
|
|
{{/if}}
|
|
</td>
|
|
{{#if (eq item.AccessorID token.AccessorID)}}
|
|
<td>Your token</td>
|
|
{{/if}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'actions' as |index change checked|}}
|
|
{{#confirmation-dialog confirming=false index=index message="Are you sure you want to delete this Token?"}}
|
|
{{#block-slot 'action' as |confirm|}}
|
|
{{#action-group index=index onchange=(action change) checked=(if (eq checked index) 'checked')}}
|
|
<ul>
|
|
{{#if false}}
|
|
<li>
|
|
{{#copy-button-feedback title="Copy AccessorID to the clipboard" copy=item.AccessorID name="AccessorID"}}Copy AccessorID{{/copy-button-feedback}}
|
|
</li>
|
|
{{/if}}
|
|
<li>
|
|
<a data-test-edit href={{href-to 'dc.acls.tokens.edit' item.AccessorID}}>Edit</a>
|
|
</li>
|
|
{{#if (not (token/is-legacy item))}}
|
|
<li>
|
|
<button type="button" data-test-clone {{action 'sendClone' item}}>Duplicate</button>
|
|
</li>
|
|
{{/if}}
|
|
{{#if (eq item.AccessorID token.AccessorID) }}
|
|
<li>
|
|
<button type="button" data-test-logout {{action confirm 'logout' item}}>Stop using</button>
|
|
</li>
|
|
{{else}}
|
|
|
|
<li>
|
|
<button type="button" data-test-use {{action confirm 'use' item}}>Use</button>
|
|
</li>
|
|
{{/if}}
|
|
{{#unless (or (token/is-anonymous item) (eq item.AccessorID token.AccessorID)) }}
|
|
<li>
|
|
<button type="button" class="type-delete" data-test-delete {{action confirm 'delete' item}}>Delete</button>
|
|
</li>
|
|
{{/unless}}
|
|
</ul>
|
|
{{/action-group}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'dialog' as |execute cancel message name|}}
|
|
<p>
|
|
{{#if (eq name 'delete')}}
|
|
{{message}}
|
|
{{#if (eq item.AccessorID token.AccessorID)}}
|
|
Warning: This is the token you are currently using!
|
|
{{/if}}
|
|
{{else if (eq name 'logout')}}
|
|
Are you sure you want to stop using this ACL token? This will log you out.
|
|
{{else if (eq name 'use')}}
|
|
Are you sure you want to use this ACL token?
|
|
{{/if}}
|
|
</p>
|
|
<button type="button" class="type-delete" {{action execute}}>
|
|
{{#if (eq name 'delete')}}
|
|
Confirm Delete
|
|
{{else if (eq name 'logout')}}
|
|
Confirm Logout
|
|
{{ else if (eq name 'use')}}
|
|
Confirm Use
|
|
{{/if}}
|
|
</button>
|
|
<button type="button" class="type-cancel" {{action cancel}}>Cancel</button>
|
|
{{/block-slot}}
|
|
{{/confirmation-dialog}}
|
|
{{/block-slot}}
|
|
{{/tabular-collection}}
|
|
{{/block-slot}}
|
|
{{#block-slot 'empty'}}
|
|
<p>
|
|
There are no Tokens.
|
|
</p>
|
|
{{/block-slot}}
|
|
{{/changeable-set}}
|
|
{{/block-slot}}
|
|
{{/app-view}}
|