open-vault/ui/app/templates/components/form-field-from-model.hbs
Angel Garbarino 3e9bb12dc2
replace last two partials (#11765)
* replace last two partials

* cleanup

* modify test to cover new component

* only on ca role run new function

* help with inconsistent failure on enterprise test

* small changes to help with flaky test locally

* add js docs
2021-06-07 12:11:46 -06:00

85 lines
2.8 KiB
Handlebars

<div class="field" data-test-form-field-from-model>
{{#unless
(or
(contains
@attr.options.editType
(array
"boolean"
"searchSelect"
"mountAccessor"
"kv"
"file"
"ttl"
"stringArray"
"json"
)
)
(eq @attr.type "boolean")
)
}}
{{#unless (eq @attr.type "object")}}
<label for="{{@attr.name}}" class="is-label">
{{capitalize (or @attr.options.label (humanize (dasherize @attr.name)))}}
{{#if @attr.options.helpText}}
<InfoTooltip>{{@attr.options.helpText}}</InfoTooltip>
{{/if}}
</label>
{{/unless}}
{{/unless}}
{{#if @attr.options.possibleValues}}
<div class="control is-expanded">
<div class="select is-fullwidth">
<select
name="{{@attr.name}}"
id="{{@attr.name}}"
onchange={{action (mut (get @model @attr.name)) value="target.value"}}
data-test-input={{@attr.name}}
>
{{#each @attr.options.possibleValues as |val|}}
<option selected={{eq (get @model @attr.name) val}} value={{val}}>
{{val}}
</option>
{{/each}}
</select>
</div>
</div>
{{else if (eq @attr.options.editType "ttl")}}
<TtlPicker2
@initialValue={{or (get @model @attr.name) @attr.options.defaultValue}}
@initialEnabled={{or (get @model @attr.name) false}}
@label={{or @attr.options.label (humanize (dasherize @attr.name))}}
@helperTextDisabled="If this is not set, the engine default will be used."
@helperTextEnabled="Disable lease after"
@onChange={{@updateTtl}}
/>
{{else if (or (eq @attr.type "number") (eq @attr.type "string"))}}
<div class="control">
<Input @id={{@attr.name}} @value={{get @model (or @attr.options.fieldValue @attr.name)}} class="input" data-test-input={{@attr.name}} />
</div>
{{else if (eq @attr.type "boolean")}}
<div class="b-checkbox">
<input
type="checkbox"
id="{{@attr.name}}"
class="styled"
checked={{get model @attr.name}}
onchange={{action (mut (get model @attr.name)) value="target.checked"}}
data-test-input={{@attr.name}}
/>
<label for="{{@attr.name}}" class="is-label">
{{capitalize (or @attr.options.label (humanize (dasherize @attr.name)))}}
{{#if @attr.options.helpText}}
<InfoTooltip>{{@attr.options.helpText}}</InfoTooltip>
{{/if}}
</label>
</div>
{{else if (eq @attr.type "object")}}
<JsonEditor
@title={{capitalize (or @attr.options.label (humanize (dasherize @attr.name)))}}
@helpText={{@attr.options.helpText}}
@value={{if (get @model @attr.name) (stringify (get @model @attr.name)) @emptyData}}
@valueUpdated={{@codemirrorUpdated}} />
{{/if}}
</div>