2
0
mirror of https://github.com/frappe/books.git synced 2024-11-10 15:50:56 +00:00
books/ui/components/controls/File.vue
2018-07-12 16:59:10 +05:30

48 lines
1.0 KiB
Vue

<script>
import Base from './Base';
export default {
extends: Base,
computed: {
inputClass() {
return ['d-none'];
}
},
methods: {
getWrapperElement(h) {
let fileName = 'Choose a file..';
if (this.$refs.input && this.$refs.input.files.length) {
fileName = this.$refs.input.files[0].name;
}
const fileButton = h('button', {
class: ['btn btn-outline-secondary btn-block'],
domProps: {
textContent: fileName
},
on: {
click: () => this.$refs.input.click()
}
});
return h('div', {
class: ['form-group', ...this.wrapperClass],
attrs: {
'data-fieldname': this.docfield.fieldname
}
}, [this.getLabelElement(h), this.getInputElement(h), fileButton]);
},
getInputAttrs() {
return {
id: this.id,
type: 'file',
value: this.value,
required: this.docfield.required,
disabled: this.disabled
}
}
}
}
</script>