Skip to content

Commit 39b9e8e

Browse files
committed
fix: Replace deprecated NcMultiselect with recommended NcSelect
Signed-off-by: Ferdinand Thiessen <rpm@fthiessen.de>
1 parent 842365e commit 39b9e8e

3 files changed

Lines changed: 21 additions & 28 deletions

File tree

src/FormsSettings.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@
3030
@update:checked="onRestrictCreationChange">
3131
{{ t('forms', 'Restrict form creation to selected groups') }}
3232
</NcCheckboxRadioSwitch>
33-
<NcMultiselect v-model="appConfig.creationAllowedGroups"
33+
<NcSelect v-model="appConfig.creationAllowedGroups"
3434
:disabled="!appConfig.restrictCreation"
3535
:multiple="true"
3636
:options="availableGroups"
3737
:placeholder="t('forms', 'Select groups')"
3838
class="forms-settings__creation__multiselect"
3939
label="displayName"
4040
track-by="groupId"
41-
@update:value="onCreationAllowedGroupsChange" />
41+
@input="onCreationAllowedGroupsChange" />
4242
</NcSettingsSection>
4343
<NcSettingsSection :title="t('forms', 'Form sharing')">
4444
<NcCheckboxRadioSwitch ref="switchAllowPublicLink"
@@ -63,7 +63,7 @@ import { loadState } from '@nextcloud/initial-state'
6363
import { generateUrl } from '@nextcloud/router'
6464
import axios from '@nextcloud/axios'
6565
import NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'
66-
import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
66+
import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
6767
import NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'
6868
6969
import logger from './utils/Logger.js'
@@ -73,7 +73,7 @@ export default {
7373
7474
components: {
7575
NcCheckboxRadioSwitch,
76-
NcMultiselect,
76+
NcSelect,
7777
NcSettingsSection,
7878
},
7979

src/components/Questions/QuestionDropdown.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,16 @@
4242
{{ t('forms', 'Shuffle options') }}
4343
</NcActionCheckbox>
4444
</template>
45-
<NcMultiselect v-if="!edit"
45+
<NcSelect v-if="!edit"
4646
v-model="selectedOption"
4747
:name="text"
4848
:placeholder="selectOptionPlaceholder"
4949
:multiple="isMultiple"
5050
:required="isRequired"
5151
:options="sortedOptions"
52+
:searchable="false"
5253
label="text"
53-
track-by="id"
54-
@select="onSelect" />
54+
@input="onInput" />
5555

5656
<ol v-if="edit" class="question__content">
5757
<!-- Answer text input edit -->
@@ -86,7 +86,7 @@ import { generateOcsUrl } from '@nextcloud/router'
8686
import { showError } from '@nextcloud/dialogs'
8787
import axios from '@nextcloud/axios'
8888
import NcActionCheckbox from '@nextcloud/vue/dist/Components/NcActionCheckbox.js'
89-
import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
89+
import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
9090
9191
import AnswerInput from './AnswerInput.vue'
9292
import QuestionMixin from '../../mixins/QuestionMixin.js'
@@ -99,7 +99,7 @@ export default {
9999
components: {
100100
AnswerInput,
101101
NcActionCheckbox,
102-
NcMultiselect,
102+
NcSelect,
103103
},
104104
105105
mixins: [QuestionMixin],
@@ -172,7 +172,7 @@ export default {
172172
},
173173
174174
methods: {
175-
onSelect(option) {
175+
onInput(option) {
176176
// Simple select
177177
if (!this.isMultiple) {
178178
this.$emit('update:values', [option.id])

src/components/SidebarTabs/SharingSearchDiv.vue

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,35 +23,28 @@
2323

2424
<template>
2525
<div>
26-
<NcMultiselect :clear-on-select="false"
26+
<NcSelect :clear-search-on-select="false"
2727
:close-on-select="false"
28-
:hide-selected="true"
29-
:internal-search="false"
3028
:loading="showLoadingCircle"
29+
:get-option-key="(option) => option.key"
3130
:options="options"
3231
:placeholder="t('forms', 'Search for user or group …')"
33-
:preselect-first="true"
34-
:searchable="true"
3532
:user-select="true"
3633
label="displayName"
37-
track-by="key"
38-
@search-change="asyncSearch"
39-
@select="addShare">
40-
<template #noOptions>
41-
{{ t('forms', 'No recommendations. Start typing.') }}
42-
</template>
43-
<template #noResult>
34+
@search="asyncSearch"
35+
@input="addShare">
36+
<template #no-options>
4437
{{ noResultText }}
4538
</template>
46-
</NcMultiselect>
39+
</NcSelect>
4740
</div>
4841
</template>
4942

5043
<script>
5144
import { generateOcsUrl } from '@nextcloud/router'
5245
import { getCurrentUser } from '@nextcloud/auth'
5346
import axios from '@nextcloud/axios'
54-
import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
47+
import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
5548
import debounce from 'debounce'
5649
5750
import OcsResponse2Data from '../../utils/OcsResponse2Data.js'
@@ -60,7 +53,7 @@ import logger from '../../utils/Logger.js'
6053
6154
export default {
6255
components: {
63-
NcMultiselect,
56+
NcSelect,
6457
},
6558
6659
mixins: [ShareTypes],
@@ -122,8 +115,8 @@ export default {
122115
* @return {string}
123116
*/
124117
noResultText() {
125-
if (this.loading) {
126-
return t('forms', 'Searching …')
118+
if (!this.query) {
119+
return t('forms', 'No recommendations. Start typing.')
127120
}
128121
return t('forms', 'No elements found.')
129122
},
@@ -308,7 +301,7 @@ export default {
308301
</script>
309302

310303
<style lang="scss" scoped>
311-
.multiselect {
304+
.select {
312305
margin-bottom: 8px !important;
313306
width: 100%;
314307
}

0 commit comments

Comments
 (0)