66 <div class =" row space-B" >
77 <h3 >{{ t('tables', 'Share with accounts or groups') }}</h3 >
88 <NcSelect id =" ajax" style =" width : 100% ;" :clear-on-select =" true" :hide-selected =" true" :internal-search =" false"
9- :loading =" loading" :options =" options" :placeholder =" t('tables', 'User or group name …')"
9+ :loading =" loading" :options =" options" :placeholder =" t('tables', 'User, group or team …')"
1010 :preselect-first =" true" :preserve-search =" true" :searchable =" true" :user-select =" true"
11- :get-option-key =" (option) => option.key" :aria-label-combobox =" t('tables', 'User or group name …')"
11+ :get-option-key =" (option) => option.key" :aria-label-combobox =" t('tables', 'User, group or team …')"
1212 label =" displayName" @search =" asyncFind" @input =" addShare" >
1313 <template #no-options >
1414 {{ t('tables', 'No recommendations. Start typing.') }}
@@ -51,6 +51,10 @@ export default {
5151 type: Boolean ,
5252 default: true ,
5353 },
54+ selectCircles: {
55+ type: Boolean ,
56+ default: true ,
57+ },
5458 },
5559
5660 computed: {
@@ -100,7 +104,7 @@ export default {
100104
101105 filterOutUnwantedItems (items ) {
102106 const shareTypesList = this .getShareTypes ()
103- const shareTypes = { 0 : ' user' , 1 : ' group' }
107+ const shareTypes = { 0 : ' user' , 1 : ' group' , 7 : ' circle ' }
104108
105109 // Filter out current user and sort
106110 items = items .filter ((item ) => ! (item .shareType === this .SHARE_TYPES .SHARE_TYPE_USER && item .shareWith === this .currentUserId )).sort ((a , b ) => a .shareType - b .shareType )
@@ -113,13 +117,24 @@ export default {
113117 },
114118
115119 formatResult (result ) {
120+ const isUser = result .source .startsWith (' users' )
121+ const isGroup = result .source .startsWith (' groups' )
122+
116123 return {
117124 shareWith: result .id ,
118- shareType: result .source .startsWith (' users' ) ? this .SHARE_TYPES .SHARE_TYPE_USER : this .SHARE_TYPES .SHARE_TYPE_GROUP ,
125+ shareType: isUser
126+ ? this .SHARE_TYPES .SHARE_TYPE_USER
127+ : isGroup
128+ ? this .SHARE_TYPES .SHARE_TYPE_GROUP
129+ : this .SHARE_TYPES .SHARE_TYPE_CIRCLE ,
119130 user: result .id ,
120- isNoUser: ! result . source . startsWith ( ' users ' ) ,
131+ isNoUser: ! isUser ,
121132 displayName: result .label ,
122- icon: result .icon || result .source .startsWith (' users' ) ? ' icon-user' : ' icon-group' ,
133+ icon: isUser
134+ ? ' icon-user'
135+ : isGroup
136+ ? ' icon-group'
137+ : ' icon-circles' ,
123138 key: result .source + ' -' + result .id ,
124139 }
125140 },
@@ -131,15 +146,21 @@ export default {
131146 * @return {object}
132147 */
133148 formatRecommendations (result ) {
149+ const isUser = result .value .shareType === this .SHARE_TYPES .SHARE_TYPE_USER
150+ const isGroup = result .value .shareType === this .SHARE_TYPES .SHARE_TYPE_GROUP
151+
134152 return {
135153 shareWith: result .value .shareWith ,
136154 shareType: result .value .shareType ,
137155 user: result .uuid || result .value .shareWith ,
138- isNoUser: result . value . shareType !== this . SHARE_TYPES . SHARE_TYPE_USER ,
156+ isNoUser: ! isUser ,
139157 displayName: result .name || result .label ,
140- icon: result .value .shareType === this .SHARE_TYPES .SHARE_TYPE_USER ? ' icon-user' : ' icon-group' ,
141- // Vue unique binding to render within Multiselect's AvatarSelectOption
142- key: result .uuid || result .value .shareWith + ' -' + result .value .shareType + ' -' + result .name || result .label ,
158+ icon: isUser
159+ ? ' icon-user'
160+ : isGroup
161+ ? ' icon-group'
162+ : ' icon-circle' ,
163+ key: result .uuid || result .value .shareWith + ' -' + result .value .shareType + ' -' + (result .name || result .label ),
143164 }
144165 },
145166
0 commit comments