Skip to content

Commit fdf098c

Browse files
authored
Fix email column inconsistencies in members list (#1479)
1 parent a9a9715 commit fdf098c

File tree

1 file changed

+41
-2
lines changed

1 file changed

+41
-2
lines changed

frontend/src/modules/member/components/list/member-list-table.vue

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@
313313
class="text-sm cursor-auto flex flex-wrap gap-1"
314314
>
315315
<el-tooltip
316-
v-for="email of scope.row.emails"
316+
v-for="email of scope.row.emails.slice(0, 3)"
317317
:key="email"
318318
:disabled="!email"
319319
popper-class="custom-identity-tooltip"
@@ -336,6 +336,45 @@
336336
>{{ email }}</a>
337337
</div>
338338
</el-tooltip>
339+
<el-popover
340+
v-if="scope.row.emails?.length > 3"
341+
placement="top"
342+
:width="400"
343+
trigger="hover"
344+
popper-class="support-popover"
345+
>
346+
<template #reference>
347+
<span
348+
class="badge--interactive hover:text-gray-900"
349+
>+{{ scope.row.emails.length - 3 }}</span>
350+
</template>
351+
<div class="flex flex-wrap gap-3 my-1">
352+
<el-tooltip
353+
v-for="email of scope.row.emails.slice(3)"
354+
:key="email"
355+
:disabled="!email"
356+
popper-class="custom-identity-tooltip flex "
357+
placement="top"
358+
>
359+
<template #content>
360+
<span>Send email
361+
<i
362+
v-if="email"
363+
class="ri-external-link-line text-gray-400"
364+
/></span>
365+
</template>
366+
<div @click.prevent>
367+
<a
368+
target="_blank"
369+
rel="noopener noreferrer"
370+
class="badge--interactive"
371+
:href="`mailto:${email}`"
372+
@click.stop="trackEmailClick"
373+
>{{ email }}</a>
374+
</div>
375+
</el-tooltip>
376+
</div>
377+
</el-popover>
339378
</div>
340379
<span v-else class="text-gray-500">-</span>
341380
</router-link>
@@ -404,14 +443,14 @@ import { useRouter } from 'vue-router';
404443
import {
405444
computed, onMounted, onUnmounted, ref, defineProps, watch,
406445
} from 'vue';
446+
import { storeToRefs } from 'pinia';
407447
import { i18n } from '@/i18n';
408448
import AppMemberListToolbar from '@/modules/member/components/list/member-list-toolbar.vue';
409449
import AppMemberOrganizations from '@/modules/member/components/member-organizations.vue';
410450
import AppTagList from '@/modules/tag/components/tag-list.vue';
411451
import { formatDateToTimeAgo } from '@/utils/date';
412452
import { formatNumberToCompact, formatNumber } from '@/utils/number';
413453
import { useMemberStore } from '@/modules/member/store/pinia';
414-
import { storeToRefs } from 'pinia';
415454
import { MemberService } from '@/modules/member/member-service';
416455
import AppMemberMergeDialog from '@/modules/member/components/member-merge-dialog.vue';
417456
import AppTagPopover from '@/modules/tag/components/tag-popover.vue';

0 commit comments

Comments
 (0)