added rememberId for task locking

main
alex 2023-06-03 22:58:53 +02:00
parent 69de96b3aa
commit ecc1f94942
4 changed files with 16 additions and 13 deletions

View File

@ -304,15 +304,17 @@ func StartUnlockLockedGroupTaskStepsTicker() {
log.Debug().Msgf("Unlocked task step %v", index)
cache.RemoveLockedGroupTaskStep(index)
socketclients.BroadcastMessageExceptUserSessionId(taskStep.LockedByUserSession,
socketclients.BroadcastMessage(
structs.SendSocketMessage{
Cmd: utils.SentCmdTaskUnlocked,
Body: struct {
GroupTaskId string
Step uint8
RememberId string
}{
GroupTaskId: taskStep.GroupTaskId,
Step: taskStep.Step,
RememberId: taskStep.RememberId,
},
})
}

View File

@ -20,6 +20,7 @@ func AddLockedGroupTaskStep(lockedGroupTaskStep structs.LockedGroupTaskSteps) (I
step.LockedByUserId == lockedGroupTaskStep.LockedByUserId {
isAlreadyInList = true
lockedGroupTaskSteps[i].LockedAt = time.Now()
lockedGroupTaskSteps[i].RememberId = lockedGroupTaskStep.RememberId
break
}
}

View File

@ -74,11 +74,11 @@ type TaskParameter struct {
// used for ui when a user is writing into input field to lock the task step for other users
type LockedGroupTaskSteps struct {
LockedByUserId string
LockedByUserSession string // user session is needed to prevent sending the unlocking message to the user who are writing
GroupTaskId string
Step uint8
LockedAt time.Time
LockedByUserId string
GroupTaskId string
Step uint8
LockedAt time.Time
RememberId string
}
// used for ui when a user types into input fields to sync to other users and show them this when opening the group task view

View File

@ -158,15 +158,15 @@ func RunHub() {
log.Info().Msgf("task locking %s", receivedMessage.Body)
isAlreadyInList := cache.AddLockedGroupTaskStep(structs.LockedGroupTaskSteps{
LockedByUserId: receivedMessage.Body["lockedByUserId"].(string),
LockedByUserSession: data.Conn.Locals("sessionId").(string),
GroupTaskId: receivedMessage.Body["groupTaskId"].(string),
Step: uint8(receivedMessage.Body["step"].(float64)),
LockedAt: time.Now(),
LockedByUserId: receivedMessage.Body["lockedByUserId"].(string),
GroupTaskId: receivedMessage.Body["groupTaskId"].(string),
Step: uint8(receivedMessage.Body["step"].(float64)),
LockedAt: time.Now(),
RememberId: receivedMessage.Body["rememberId"].(string),
})
if !isAlreadyInList {
socketclients.BroadcastMessageExceptUserSessionId(data.Conn.Locals("sessionId").(string), structs.SendSocketMessage{
socketclients.BroadcastMessage(structs.SendSocketMessage{
Cmd: utils.SentCmdTaskLocked,
Body: receivedMessage.Body,
})
@ -174,7 +174,7 @@ func RunHub() {
break
case utils.ReceivedCmdUpdateGroupTaskStepUserInputValue:
socketclients.BroadcastMessageExceptUserSessionId(data.Conn.Locals("sessionId").(string), structs.SendSocketMessage{
socketclients.BroadcastMessage(structs.SendSocketMessage{
Cmd: utils.SentCmdUpdateGroupTaskStepUserInputValue,
Body: receivedMessage.Body,
})