diff --git a/frontend/src/modules/member/components/member-autocomplete-input.vue b/frontend/src/modules/member/components/member-autocomplete-input.vue
deleted file mode 100644
index 0923c50094..0000000000
--- a/frontend/src/modules/member/components/member-autocomplete-input.vue
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
diff --git a/frontend/src/modules/member/components/member-dropdown.vue b/frontend/src/modules/member/components/member-dropdown.vue
index 50216bb348..50f5acec6b 100644
--- a/frontend/src/modules/member/components/member-dropdown.vue
+++ b/frontend/src/modules/member/components/member-dropdown.vue
@@ -324,6 +324,7 @@ export default {
{ username: {}, attributes: {} }
]
this.isMergeDialogOpen = true
+ this.memberToMerge = null
} else if (command.action === 'memberEnrich') {
this.doEnrich(command.member.id)
} else {
diff --git a/frontend/src/modules/member/components/member-selection-dropdown.vue b/frontend/src/modules/member/components/member-selection-dropdown.vue
index c237b9067a..c42b8e7e11 100644
--- a/frontend/src/modules/member/components/member-selection-dropdown.vue
+++ b/frontend/src/modules/member/components/member-selection-dropdown.vue
@@ -6,13 +6,14 @@
Select the member you want to merge with
-
+
@@ -56,9 +57,18 @@ const fetchFn = async (query, limit) => {
query,
limit
)
- return options.filter((m) => {
+
+ // Remove primary member from members that can be merged with
+ const filteredOptions = options.filter((m) => {
return m.id !== props.id
})
+
+ // If the primary member was removed, add an empty object in replacement
+ if (options.length !== filteredOptions.length) {
+ filteredOptions.push({})
+ }
+
+ return filteredOptions
}
diff --git a/frontend/src/modules/member/member-module.js b/frontend/src/modules/member/member-module.js
index c5a4f3a1d5..fe0611c347 100644
--- a/frontend/src/modules/member/member-module.js
+++ b/frontend/src/modules/member/member-module.js
@@ -1,11 +1,7 @@
import routes from '@/modules/member/member-routes'
import store from '@/modules/member/store'
-import MemberAutocompleteInput from '@/modules/member/components/member-autocomplete-input.vue'
export default {
- components: {
- 'app-member-autocomplete-input': MemberAutocompleteInput
- },
routes,
store
}
diff --git a/frontend/src/modules/tag/components/tag-autocomplete-input.vue b/frontend/src/modules/tag/components/tag-autocomplete-input.vue
index cb3d55babe..70033db67a 100644
--- a/frontend/src/modules/tag/components/tag-autocomplete-input.vue
+++ b/frontend/src/modules/tag/components/tag-autocomplete-input.vue
@@ -1,24 +1,13 @@
@@ -48,10 +37,6 @@ export default {
placeholder: {
type: String,
default: null
- },
- multiple: {
- type: Boolean,
- default: true
}
},
emits: ['update:modelValue'],
diff --git a/frontend/src/shared/form/autocomplete-one-input.vue b/frontend/src/shared/form/autocomplete-one-input.vue
index 78a1b487c5..9eeb3990c6 100644
--- a/frontend/src/shared/form/autocomplete-one-input.vue
+++ b/frontend/src/shared/form/autocomplete-one-input.vue
@@ -12,6 +12,7 @@
:remote="true"
:reserve-keyword="false"
:allow-create="allowCreate"
+ fit-input-width
value-key="id"
:class="inputClass"
@change="onChange"
@@ -25,14 +26,33 @@
{{ createPrefix }}
{{ currentQuery }}
-
-
+
+
+ {{ record.label }}
+
+
+
+
+ Type to search for more results
+
+
+ No matches found
+
@@ -40,7 +60,7 @@
import isString from 'lodash/isString'
import { onSelectMouseLeave } from '@/utils/select'
-const AUTOCOMPLETE_SERVER_FETCH_SIZE = 100
+const AUTOCOMPLETE_SERVER_FETCH_SIZE = 20
export default {
name: 'AppAutocompleteOneInput',
@@ -58,10 +78,6 @@ export default {
type: Function,
default: () => {}
},
- mapperFn: {
- type: Function,
- default: () => {}
- },
createFn: {
type: Function,
default: () => {}
@@ -96,7 +112,8 @@ export default {
return {
loading: false,
localOptions: this.options ? this.options : [],
- currentQuery: ''
+ currentQuery: '',
+ limit: AUTOCOMPLETE_SERVER_FETCH_SIZE
}
},
@@ -111,6 +128,16 @@ export default {
o === this.currentQuery
)
)
+ },
+ showEmptyMessage() {
+ // Show empty message if request is not loading,
+ // there are options or the only option is empty
+ return (
+ !this.loading &&
+ (!this.localOptions.length ||
+ (this.localOptions.length === 1 &&
+ !this.localOptions[0].id))
+ )
}
},
@@ -153,7 +180,10 @@ export default {
this.loading = true
try {
- this.localOptions = await this.fetchFn()
+ this.localOptions = await this.fetchFn(
+ this.currentQuery,
+ AUTOCOMPLETE_SERVER_FETCH_SIZE
+ )
this.loading = false
} catch (error) {
console.error(error)
@@ -187,5 +217,3 @@ export default {
}
}
-
-
diff --git a/frontend/src/shared/form/platform-autocomplete-input.vue b/frontend/src/shared/form/platform-autocomplete-input.vue
deleted file mode 100644
index ba1fc5f169..0000000000
--- a/frontend/src/shared/form/platform-autocomplete-input.vue
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-