open-vault/ui/app/templates/components/mount-backend-form.hbs

97 lines
3.3 KiB
Handlebars
Raw Normal View History

<PageHeader as |p|>
<p.levelLeft>
<h1 class="title is-3" data-test-mount-form-header=true>
2018-08-28 05:03:55 +00:00
{{#if showConfig}}
{{#with (find-by 'type' mountModel.type mountTypes) as |typeInfo|}}
<ICon @size=24 @glyph={{concat "enable/" (or typeInfo.glyph typeInfo.type)}} @class="has-text-grey-light" />
2018-08-28 05:03:55 +00:00
{{#if (eq mountType "auth")}}
Enable {{typeInfo.displayName}} authentication method
{{else}}
Enable {{typeInfo.displayName}} secrets engine
{{/if}}
{{/with}}
{{else}}
2018-08-28 05:03:55 +00:00
{{#if (eq mountType "auth")}}
Enable an authentication method
{{else}}
Enable a secrets engine
{{/if}}
{{/if}}
</h1>
</p.levelLeft>
</PageHeader>
2018-04-03 14:16:57 +00:00
<form {{action (perform mountBackend) on="submit"}}>
<div class="box is-sideless is-fullwidth is-marginless">
UI namespaces (#5119) * add namespace sidebar item * depend on ember-inflector directly * list-view and list-item components * fill out components and render empty namespaces page * list namespaces in access * add menu contextual component to list item * popup contextual component * full crud for namespaces * add namespaces service and picker component * split application and vault.cluster templates and controllers, add namespace query param, add namespace-picker to vault.namespace template * remove usage of href-to * remove ember-href-to from deps * add ember-responsive * start styling the picker and link to appropriate namespaces, use ember-responsive to render picker in different places based on the breakpoint * get query param working and save ns to authdata when authenticating, feed through ns in application adapter * move to observer on the controller for setting state on the service * set state in the beforeModel hook and clear the ember data model cache * nav to secrets on change and make error handling more resilient utilizing the method that atlas does to eagerly update URLs * add a list of sys endpoints in a helper * hide header elements if not in the root namespace * debounce namespace input on auth, fix 404 for auth method fetch, move auth method fetch to a task on the auth-form component and refretch on namespace change * fix display of supported engines and exclusion of sys and identity engines * don't fetch replication status if you're in a non-root namespace * hide seal sub-menu if not in the root namespace * don't autocomplete auth form inputs * always send some requests to the root namespace * use methodType and engineType instead of type in case there it is ns_ prefixed * use sys/internal/ui/namespaces to fetch the list in the dropdown * don't use model for namespace picker and always make the request to the token namespace * fix header handling for fetch calls * use namespace-reminder component on creation and edit forms throughout the application * add namespace-reminder to the console * add flat * add deepmerge for creating the tree in the menu * delayed rendering for animation timing * design and code feedback on the first round * white text in the namespace picker * fix namespace picker issues with root keys * separate path-to-tree * add tests for path-to-tree util * hide picker if you're in the root ns and you can't access other namespaces * show error message if you enter invalid characters for namespace path * return a different model if we dont have the namespaces feature and show upgrade page * if a token has a namespace_path, use that as the root user namespace and transition them there on login * use token namespace for user, but use specified namespace to log in * always renew tokens in the token namespace * fix edition-badge test
2018-08-16 17:48:24 +00:00
<NamespaceReminder @mode="enable" @noun={{if (eq mountType "auth") "auth method" "secret engine"}} />
2018-04-03 14:16:57 +00:00
{{message-error model=mountModel}}
2018-08-28 05:03:55 +00:00
{{#if showConfig}}
{{form-field-groups model=mountModel onChange=(action "onTypeChange") renderGroup="default"}}
{{#if mountModel.authConfigs.firstObject}}
{{form-field-groups model=mountModel.authConfigs.firstObject}}
{{/if}}
{{form-field-groups model=mountModel onChange=(action "onTypeChange") renderGroup="Method Options"}}
{{else}}
{{#each (array "generic" "cloud" "infra") as |category|}}
<h3 class="title box-radio-header">
{{capitalize category}}
</h3>
<div class="box-radio-container">
{{#each (filter-by "category" category mountTypes) as |type|}}
<label
for={{type.type}}
class="box-radio{{if (eq mountModel.type type.type) " is-selected"}}"
2018-08-28 05:03:55 +00:00
data-test-mount-type-radio
data-test-mount-type={{type.type}}
>
<ICon @size=36 @excludeIconClass={{true}} @glyph={{concat "enable/" (or type.glyph type.type)}} @class="has-text-grey-light" />
2018-08-28 05:03:55 +00:00
{{type.displayName}}
<RadioButton
@value={{type.type}}
@radioClass="radio"
@groupValue={{mountModel.type}}
@changed={{queue (action (mut mountModel.type)) (action "onTypeChange" "type")}}
@name="mount-type"
@radioId={{type.type}}
/>
<label for={{type.type}}></label>
</label>
{{/each}}
</div>
{{/each}}
2018-04-03 14:16:57 +00:00
{{/if}}
</div>
<div class="field is-grouped box is-fullwidth is-bottomless">
2018-08-28 05:03:55 +00:00
{{#if showConfig}}
<div class="control">
<button type="submit" data-test-mount-submit=true class="button is-primary {{if mountBackend.isRunning 'loading'}}" disabled={{mountBackend.isRunning}}>
{{#if (eq mountType "auth")}}
Enable Method
{{else}}
Enable Engine
{{/if}}
</button>
</div>
<div class="control">
<button
data-test-mount-back
type="button"
class="button"
onclick={{action "toggleShowConfig" false}}
>
Back
</button>
</div>
{{else}}
<button
data-test-mount-next
type="button"
class="button is-primary"
onclick={{action "toggleShowConfig" true}}
disabled={{not mountModel.type}}
>
Next
</button>
{{/if}}
2018-04-03 14:16:57 +00:00
</div>
</form>