open-vault/ui/app/templates/components/text-file.hbs

90 lines
2.9 KiB
Handlebars

{{#unless this.inputOnly}}
<div class="level is-mobile">
<div class="level-left">
<label class="is-label" data-test-text-label={{true}}>
{{#if this.label}}
{{this.label}}
{{#if @helpText}}
<InfoTooltip>
<span data-test-help-text>
{{@helpText}}
</span>
</InfoTooltip>
{{/if}}
{{else}}
File
{{/if}}
</label>
</div>
<div class="level-right">
<div class="control is-flex">
<input
data-test-text-toggle
id={{concat "useText-" this.elementId}}
type="checkbox"
name={{concat "useText-" this.elementId}}
class="switch is-rounded is-success is-small"
checked={{@file.enterAsText}}
{{on "change" (toggle "enterAsText" @file)}}
/>
<label for={{concat "useText-" this.elementId}}>
Enter as text
</label>
</div>
</div>
</div>
{{/unless}}
<div
class="field text-file box is-fullwidth is-marginless is-shadowless {{if this.inputOnly 'is-paddingless'}}"
data-test-component="text-file"
>
{{#if @file.enterAsText}}
<div class="control has-icon-right">
<textarea
class="textarea {{unless this.showValue 'masked-font'}}"
{{on "input" this.updateData}}
data-test-text-file-textarea={{true}}
>{{@file.value}}</textarea>
<button
{{on "click" this.toggleMask}}
type="button"
class="{{if (eq this.value '') 'has-text-grey'}} masked-input-toggle button {{if this.displayOnly 'is-compact'}}"
data-test-button
>
<Icon @name={{if this.showValue "eye" "eye-off"}} />
</button>
</div>
<p class="help has-text-grey">
{{this.textareaHelpText}}
</p>
{{else}}
<div class="control is-expanded">
<div class="file has-name is-fullwidth">
<label class="file-label">
<input class="file-input" type="file" {{on "change" this.pickedFile}} data-test-text-file-input={{true}} />
<span class="file-cta button">
<Icon @name="upload" class="has-light-grey-text" />
Choose a file…
</span>
<span class="file-name has-text-grey-dark" data-test-text-file-input-label={{true}}>
{{#if @file.fileName}}
{{@file.fileName}}
{{else}}
No file chosen
{{/if}}
</span>
{{#if @file.fileName}}
{{! template-lint-configure no-nested-interactive "warn" }}
<button type="button" class="file-delete-button" {{on "click" this.clearFile}} data-test-text-clear={{true}}>
<Icon @name="x-circle" />
</button>
{{! template-lint-configure no-nested-interactive "on" }}
{{/if}}
</label>
</div>
</div>
<p class="help has-text-grey">
{{this.fileHelpText}}
</p>
{{/if}}
</div>