diff --git a/grouptasks/grouptasks.go b/grouptasks/grouptasks.go index e76ff26..8d40974 100644 --- a/grouptasks/grouptasks.go +++ b/grouptasks/grouptasks.go @@ -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, }, }) } diff --git a/modules/cache/lockedgrouptasksteps.go b/modules/cache/lockedgrouptasksteps.go index ce6f30b..af45ad4 100644 --- a/modules/cache/lockedgrouptasksteps.go +++ b/modules/cache/lockedgrouptasksteps.go @@ -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 } } diff --git a/modules/structs/grouptasks.go b/modules/structs/grouptasks.go index 1ee1298..07d0f86 100644 --- a/modules/structs/grouptasks.go +++ b/modules/structs/grouptasks.go @@ -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 diff --git a/socketserver/hub.go b/socketserver/hub.go index dab8845..859f0aa 100644 --- a/socketserver/hub.go +++ b/socketserver/hub.go @@ -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, })