open-vault/ui/app/templates/partials/form-field-from-model.hbs
2019-02-14 13:52:34 -05:00

88 lines
2.5 KiB
Handlebars

<div class="field">
{{#unless
(or
(contains
attr.options.editType
(array
"boolean"
"searchSelect"
"mountAccessor"
"kv"
"file"
"ttl"
"stringArray"
"json"
)
)
(eq attr.type "boolean")
)
}}
<label for="{{attr.name}}" class="is-label">
{{capitalize (or attr.options.label (humanize (dasherize attr.name)))}}
{{#if attr.options.helpText}}
{{#info-tooltip}}{{attr.options.helpText}}{{/info-tooltip}}
{{/if}}
</label>
{{/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")}}
{{ttl-picker
initialValue=(or (get model attr.name) attr.options.defaultValue)
labelText=(if
attr.options.label attr.options.label (humanize (dasherize attr.name))
)
setDefaultValue=false
onChange=(action (mut (get model attr.name)))
}}
{{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}}
{{#info-tooltip}}{{attr.options.helpText}}{{/info-tooltip}}
{{/if}}
</label>
</div>
{{else if (eq attr.type "object")}}
{{json-editor
value=(if
(get model attr.name) (stringify (get model attr.name)) emptyData
)
valueUpdated=(action "codemirrorUpdated" attr.name)
}}
{{/if}}
</div>