From 3fa59e84ff90536a2fd6bfbc9c2c586dafd3baf5 Mon Sep 17 00:00:00 2001 From: Cleopatra Enjeck M Date: Mon, 3 Jun 2024 09:22:32 +0100 Subject: [PATCH] fix: update usergroup column elements Signed-off-by: Cleopatra Enjeck M --- .../components/ncTable/mixins/columnsTypes/usergroup.js | 6 +++++- src/shared/components/ncTable/mixins/filter.js | 6 +++--- src/shared/components/ncTable/mixins/magicFields.js | 4 ++-- .../components/ncTable/partials/TableCellUsergroup.vue | 3 ++- .../partials/columnTypePartials/forms/UsergroupForm.vue | 8 ++++---- .../ncTable/partials/rowTypePartials/UsergroupForm.vue | 9 +++++---- src/shared/mixins/searchUserGroup.js | 8 +++----- 7 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/shared/components/ncTable/mixins/columnsTypes/usergroup.js b/src/shared/components/ncTable/mixins/columnsTypes/usergroup.js index 9486fa69d..e02917102 100644 --- a/src/shared/components/ncTable/mixins/columnsTypes/usergroup.js +++ b/src/shared/components/ncTable/mixins/columnsTypes/usergroup.js @@ -13,6 +13,10 @@ export default class UsergroupColumn extends AbstractUsergroupColumn { this.usergroupSelectGroups = data.usergroupSelectGroups } + // TODO consider if we want to sort, and how + // sort(mode) { + // } + getValueString(valueObject) { valueObject = valueObject || this.value || null @@ -22,7 +26,7 @@ export default class UsergroupColumn extends AbstractUsergroupColumn { if (ret === '') { ret = obj.id } else { - ret += ', ' + obj.display + ret += ', ' + obj.id } }) return ret diff --git a/src/shared/components/ncTable/mixins/filter.js b/src/shared/components/ncTable/mixins/filter.js index d33b702c7..34f796482 100644 --- a/src/shared/components/ncTable/mixins/filter.js +++ b/src/shared/components/ncTable/mixins/filter.js @@ -49,7 +49,7 @@ export const Filters = { Contains: new Filter({ id: FilterIds.Contains, label: t('tables', 'Contains'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextLong, ColumnTypes.TextLink, ColumnTypes.TextRich, ColumnTypes.SelectionMulti, ColumnTypes.Usergroup], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextLong, ColumnTypes.TextLink, ColumnTypes.TextRich, ColumnTypes.SelectionMulti], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual], }), BeginsWith: new Filter({ @@ -68,7 +68,7 @@ export const Filters = { id: FilterIds.IsEqual, label: t('tables', 'Is equal'), shortLabel: '=', - goodFor: [ColumnTypes.TextLine, ColumnTypes.Number, ColumnTypes.SelectionCheck, ColumnTypes.TextLink, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.Usergroup], + goodFor: [ColumnTypes.TextLine, ColumnTypes.Number, ColumnTypes.SelectionCheck, ColumnTypes.TextLink, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.Selection, ColumnTypes.SelectionMulti], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.BeginsWith, FilterIds.EndsWith, FilterIds.Contains, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual], }), IsGreaterThan: new Filter({ @@ -102,7 +102,7 @@ export const Filters = { IsEmpty: new Filter({ id: FilterIds.IsEmpty, label: t('tables', 'Is empty'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextRich, ColumnTypes.Number, ColumnTypes.TextLink, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.SelectionCheck, ColumnTypes.Usergroup], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextRich, ColumnTypes.Number, ColumnTypes.TextLink, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.SelectionCheck], incompatibleWith: [FilterIds.Contains, FilterIds.BeginsWith, FilterIds.EndsWith, FilterIds.IsEqual, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual, FilterIds.IsEmpty], noSearchValue: true, }), diff --git a/src/shared/components/ncTable/mixins/magicFields.js b/src/shared/components/ncTable/mixins/magicFields.js index a001ac265..d45e24a57 100644 --- a/src/shared/components/ncTable/mixins/magicFields.js +++ b/src/shared/components/ncTable/mixins/magicFields.js @@ -34,14 +34,14 @@ export const MagicFields = { id: 'me', label: t('tables', 'Me (user ID)'), icon: 'icon-user', - goodFor: [ColumnTypes.TextLine, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.TextRich, ColumnTypes.TextLink, ColumnTypes.Usergroup], + goodFor: [ColumnTypes.TextLine, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.TextRich, ColumnTypes.TextLink], replace: getCurrentUser()?.uid, }), MyName: new MagicField({ id: 'my-name', label: t('tables', 'Me (name)'), icon: 'icon-user', - goodFor: [ColumnTypes.TextLine, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.TextRich, ColumnTypes.TextLink, ColumnTypes.Usergroup], + goodFor: [ColumnTypes.TextLine, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.TextRich, ColumnTypes.TextLink], replace: getCurrentUser()?.displayName, }), Checked: new MagicField({ diff --git a/src/shared/components/ncTable/partials/TableCellUsergroup.vue b/src/shared/components/ncTable/partials/TableCellUsergroup.vue index 6344b1551..3d2495179 100644 --- a/src/shared/components/ncTable/partials/TableCellUsergroup.vue +++ b/src/shared/components/ncTable/partials/TableCellUsergroup.vue @@ -8,6 +8,7 @@ {{ item.id }} --> +

User

@{{ item.id }}
@@ -37,7 +38,7 @@ export default { }, }, mounted() { - console.log(value) + console.log(this.value) } } diff --git a/src/shared/components/ncTable/partials/columnTypePartials/forms/UsergroupForm.vue b/src/shared/components/ncTable/partials/columnTypePartials/forms/UsergroupForm.vue index fa64518fc..584de2ee5 100644 --- a/src/shared/components/ncTable/partials/columnTypePartials/forms/UsergroupForm.vue +++ b/src/shared/components/ncTable/partials/columnTypePartials/forms/UsergroupForm.vue @@ -24,7 +24,7 @@ @@ -83,7 +83,7 @@ export default { data() { return { mutableColumn: this.column, - value: [], + value: this.column.usergroupDefault, } }, computed: { @@ -95,10 +95,10 @@ export default { // TODO update to get groups too if (Array.isArray(v)) { this.column.usergroupDefault = v.map(o => { - return {type: o.isUser ? 0 : 1, id: o.user } + return o }) } else { - this.column.usergroupDefault = [{ type: v.isUser ? 0 : 1, id: v.user }] + this.column.usergroupDefault = [v] } }, diff --git a/src/shared/components/ncTable/partials/rowTypePartials/UsergroupForm.vue b/src/shared/components/ncTable/partials/rowTypePartials/UsergroupForm.vue index d9b834dfa..959f25b51 100644 --- a/src/shared/components/ncTable/partials/rowTypePartials/UsergroupForm.vue +++ b/src/shared/components/ncTable/partials/rowTypePartials/UsergroupForm.vue @@ -2,7 +2,7 @@ @@ -48,13 +48,14 @@ export default { }, set(v) { // TODO update to get groups too - let formattedValue = [] + console.log('v', v) + let formattedValue = null if (Array.isArray(v)) { formattedValue = v.map(o => { - return {displayName: o.displayName, type: o.isUser ? 0 : 1, id: o.user } + return o }) } else { - formattedValue = [{ displayName: v.displayName, type: v.isUser ? 0 : 1, id: v.user }] + formattedValue = [v] } console.log(formattedValue) this.$emit('update:value', formattedValue) diff --git a/src/shared/mixins/searchUserGroup.js b/src/shared/mixins/searchUserGroup.js index 674bce486..ec30adfae 100644 --- a/src/shared/mixins/searchUserGroup.js +++ b/src/shared/mixins/searchUserGroup.js @@ -80,11 +80,9 @@ export default { const res = await axios.get(url) const rawSuggestions = res.data.ocs.data.map(autocompleteResult => { return { - user: autocompleteResult.id, - displayName: autocompleteResult.label, - icon: autocompleteResult.icon, - isUser: autocompleteResult.source.startsWith('users'), - key: autocompleteResult.source + '-' + autocompleteResult.id, + id: autocompleteResult.id, + type: autocompleteResult.source.startsWith('users') ? 0 : 1, + key: autocompleteResult.id, } }) this.suggestions = this.filterOutUnwantedItems(rawSuggestions)