diff --git a/src/components/Nav/CollectiveMembersModal.vue b/src/components/Nav/CollectiveMembersModal.vue
index 7c32a5403..61ae5f390 100644
--- a/src/components/Nav/CollectiveMembersModal.vue
+++ b/src/components/Nav/CollectiveMembersModal.vue
@@ -9,6 +9,14 @@
size="normal"
@closing="onClose">
+
+
+
import { t } from '@nextcloud/l10n'
+import { generateUrl } from '@nextcloud/router'
import { mapActions, mapState } from 'pinia'
import NcDialog from '@nextcloud/vue/components/NcDialog'
+import OpenInNewIcon from 'vue-material-design-icons/OpenInNew.vue'
import MemberPicker from '../Member/MemberPicker.vue'
import { autocompleteSourcesToCircleMemberTypes, circlesMemberTypes } from '../../constants.js'
import { useCirclesStore } from '../../stores/circles.js'
import { useCollectivesStore } from '../../stores/collectives.js'
+import { useRootStore } from '../../stores/root.js'
export default {
name: 'CollectiveMembersModal',
@@ -34,6 +45,7 @@ export default {
components: {
MemberPicker,
NcDialog,
+ OpenInNewIcon,
},
props: {
@@ -46,10 +58,23 @@ export default {
computed: {
...mapState(useCirclesStore, ['circleMembersSorted']),
...mapState(useCollectivesStore, ['isCollectiveAdmin']),
+ ...mapState(useRootStore, ['isPublic']),
currentUserIsAdmin() {
return this.isCollectiveAdmin(this.collective)
},
+
+ teamUrl() {
+ return generateUrl('/apps/contacts/circle/{teamId}', { teamId: this.collective.circleId })
+ },
+
+ hasContactsApp() {
+ return 'contacts' in window.OC.appswebroots
+ },
+
+ showTeamLink() {
+ return this.hasContactsApp && !this.isPublic
+ },
},
beforeMount() {
@@ -82,9 +107,35 @@ export default {