diff --git a/src/components/ADempiere/Field/FieldMixin.js b/src/components/ADempiere/Field/FieldMixin.js index 6a76ff06..6c171de6 100644 --- a/src/components/ADempiere/Field/FieldMixin.js +++ b/src/components/ADempiere/Field/FieldMixin.js @@ -38,7 +38,9 @@ export const fieldMixin = { }, methods: { activeFocus() { - this.$refs[this.metadata.columnName].focus() + if (this.$refs[this.metadata.columnName]) { + this.$refs[this.metadata.columnName].focus() + } }, /** * Overwrite component method if necessary @@ -49,6 +51,14 @@ export const fieldMixin = { this.handleChange(value) }, focusGained(value) { + if (this.metadata.isAutoSelection) { + // select all the content inside the text box + if (!this.isEmptyValue(value.target.selectionStart) && + !this.isEmptyValue(value.target.selectionStart)) { + value.target.selectionStart = 0 + value.target.selectionEnd = value.target.value.length + } + } if (this.metadata.handleFocusGained) { this.$store.dispatch('notifyFocusGained', { containerUuid: this.metadata.containerUuid, diff --git a/src/components/ADempiere/Field/FieldNumber.vue b/src/components/ADempiere/Field/FieldNumber.vue index eb1305f6..f8026022 100644 --- a/src/components/ADempiere/Field/FieldNumber.vue +++ b/src/components/ADempiere/Field/FieldNumber.vue @@ -9,7 +9,8 @@ :placeholder="metadata.help" :disabled="isDisabled" :precision="precision" - controls-position="right" + :controls="isShowControls" + :controls-position="controlsPosition" :class="'display-type-amount ' + metadata.cssClassName" @change="preHandleChange" @blur="focusLost" @@ -62,6 +63,24 @@ export default { return 2 } return undefined + }, + isShowControls() { + if (!this.isEmptyValue(this.metadata.showControl)) { + if (this.metadata.showControl === 0) { + return false + } + } + return true + }, + controlsPosition() { + if (!this.isEmptyValue(this.metadata.showControl)) { + // show side controls + if (this.metadata.showControl === 1) { + return undefined + } + } + // show right controls + return 'right' } }, watch: { diff --git a/src/components/ADempiere/Field/FieldYesNo.vue b/src/components/ADempiere/Field/FieldYesNo.vue index 8c884c5b..add2c80f 100644 --- a/src/components/ADempiere/Field/FieldYesNo.vue +++ b/src/components/ADempiere/Field/FieldYesNo.vue @@ -89,6 +89,6 @@ export default { diff --git a/src/views/ADempiere/TestView/fieldsList.js b/src/views/ADempiere/TestView/fieldsList.js index 6fe28fc5..85afcc0a 100644 --- a/src/views/ADempiere/TestView/fieldsList.js +++ b/src/views/ADempiere/TestView/fieldsList.js @@ -6,6 +6,7 @@ export default [ columnName: 'URL', definition: { name: 'Web', + isAutoSelection: true, displayType: URL.id } }, @@ -69,7 +70,8 @@ export default [ definition: { name: 'Sequence for record', displayType: INTEGER.id, - mandatoryLogic: '@URL@!""' + mandatoryLogic: '@URL@!""', + showControl: 1 } }, // Text Long