mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-27 12:04:56 +02:00
Add members to space type for easy management members, and add autojo… (#5612)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
@@ -118,6 +118,7 @@
|
||||
private: isPrivate,
|
||||
members,
|
||||
owners,
|
||||
autoJoin,
|
||||
archived: false,
|
||||
icon,
|
||||
color
|
||||
@@ -146,6 +147,9 @@
|
||||
if (teamspaceData.color !== teamspace?.color) {
|
||||
update.color = teamspaceData.color
|
||||
}
|
||||
if (teamspaceData.autoJoin !== teamspace?.autoJoin) {
|
||||
update.autoJoin = teamspaceData.autoJoin
|
||||
}
|
||||
if (teamspaceData.members.length !== teamspace?.members.length) {
|
||||
update.members = teamspaceData.members
|
||||
} else {
|
||||
@@ -236,6 +240,7 @@
|
||||
}
|
||||
|
||||
function handleMembersChanged (newMembers: Ref<Account>[]): void {
|
||||
membersChanged = true
|
||||
// If a member was removed we need to remove it from any roles assignments as well
|
||||
const newMembersSet = new Set(newMembers)
|
||||
const removedMembersSet = new Set(members.filter((m) => !newMembersSet.has(m)))
|
||||
@@ -257,6 +262,21 @@
|
||||
rolesAssignment[roleId] = newMembers
|
||||
}
|
||||
|
||||
let autoJoin = teamspace?.autoJoin ?? spaceType?.autoJoin ?? false
|
||||
|
||||
$: setDefaultMembers(spaceType)
|
||||
|
||||
let membersChanged: boolean = false
|
||||
|
||||
function setDefaultMembers (typeType: SpaceType | undefined): void {
|
||||
if (typeType === undefined) return
|
||||
if (membersChanged) return
|
||||
if (teamspace !== undefined) return
|
||||
autoJoin = typeType.autoJoin ?? false
|
||||
if (typeType.members === undefined || typeType.members.length === 0) return
|
||||
members = typeType.members
|
||||
}
|
||||
|
||||
$: canSave =
|
||||
name.trim().length > 0 &&
|
||||
!(members.length === 0 && isPrivate) &&
|
||||
@@ -366,7 +386,7 @@
|
||||
<Label label={presentation.string.MakePrivate} />
|
||||
<span><Label label={presentation.string.MakePrivateDescription} /></span>
|
||||
</div>
|
||||
<Toggle bind:on={isPrivate} disabled={!isPrivate && members.length === 0} />
|
||||
<Toggle id={'teamspace-private'} bind:on={isPrivate} disabled={!isPrivate && members.length === 0} />
|
||||
</div>
|
||||
|
||||
<div class="antiGrid-row">
|
||||
@@ -383,6 +403,14 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="antiGrid-row">
|
||||
<div class="antiGrid-row__header withDesciption">
|
||||
<Label label={core.string.AutoJoin} />
|
||||
<span><Label label={core.string.AutoJoinDescr} /></span>
|
||||
</div>
|
||||
<Toggle bind:on={autoJoin} />
|
||||
</div>
|
||||
|
||||
{#each roles as role}
|
||||
<div class="antiGrid-row">
|
||||
<div class="antiGrid-row__header">
|
||||
|
||||
Reference in New Issue
Block a user