Skip to content

Conversation

@odeimaiz
Copy link
Member

@odeimaiz odeimaiz commented Aug 21, 2025

What do these changes do?

This PR implements the frontend part of the node's lock_state mechanism. The changes introduce a comprehensive system to track and display when nodes are being used by other users, enhancing collaboration visibility in the platform.

The node's lock_state message, that comes via websocket, contains locked and current_user_groupids information. This information is used in the following widgets:

  • NodeUI (nodes on the workbench): A lock icon when the node is locked and if it's the case the avatar group is shown right below it.
  • When a user enters a node that is locked: A similar page to the loading-node is shown. Here, reusing the avatar group, we display who has locked it and since there are no more actions that can be taken by the blocked user, a button that opens the conversation is displayed.

LockingNodes

Related issue/s

How to test

Dev-ops

@odeimaiz odeimaiz self-assigned this Aug 21, 2025
@odeimaiz odeimaiz added this to the Voyager milestone Aug 21, 2025
@odeimaiz odeimaiz added t:enhancement Improvement or request on an existing feature a:frontend issue affecting the front-end (area group) labels Aug 21, 2025
@mergify
Copy link
Contributor

mergify bot commented Aug 21, 2025

🧪 CI Insights

Here's what we observed from your CI run for 2d7be81.

✅ Passed Jobs With Interesting Signals

Pipeline Job Signal Health on base branch Retries 🔍 CI Insights 📄 Logs
CI unit-tests Base branch is broken, but the job passed. Looks like this might be a real fix 💪 Broken 0 View View

@odeimaiz odeimaiz marked this pull request as ready for review August 22, 2025 12:41
@odeimaiz odeimaiz requested a review from Copilot August 22, 2025 12:42
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements Real-Time Communication (RTC) features for Node Lock State functionality in the frontend. The changes introduce a comprehensive system to track and display when nodes are being used by other users, enhancing collaboration visibility in the platform.

Key changes include:

  • Addition of node lock state tracking with user group identification
  • Introduction of avatar groups to show current users
  • Implementation of locked page UI when nodes are in use by others
  • Refactoring of iframe state management to support lock-aware display logic

Reviewed Changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
osparc/data/model/NodeLockState.js New model class to manage node lock state and current user tracking
osparc/ui/message/NodeLockedPage.js New UI component displaying lock status and active users
osparc/workbench/NodeUI.js Updated to show lock indicators and avatar groups for active users
osparc/data/model/IframeHandler.js Enhanced to handle locked page display and state changes
osparc/desktop/WorkbenchView.js Added centralized iframe state change handling
osparc/ui/basic/AvatarGroup.js Added property to hide current user from avatar display
osparc/ui/message/Loading.js Refactored to use child controls pattern for better extensibility
osparc/data/model/NodeStatus.js Integrated lock state management
osparc/data/model/Node.js Added lock page access and separated progress/state population
Comments suppressed due to low confidence (1)

services/static-webserver/client/source/class/osparc/data/model/NodeLockState.js:64

  • The listener is attached for event "currentUserGroupIds" but the property change event is "changeCurrentUserGroupIds". This inconsistency will prevent the listener from being triggered.
    isLockedBySomeoneElse: function() {

@sonarqubecloud
Copy link

@odeimaiz odeimaiz added the 🤖-automerge marks PR as ready to be merged for Mergify label Aug 22, 2025
Copy link
Collaborator

@matusdrobuliak66 matusdrobuliak66 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Member

@sanderegg sanderegg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Member

@pcrespov pcrespov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👀

@odeimaiz odeimaiz merged commit be7e1e2 into ITISFoundation:master Aug 22, 2025
58 checks passed
@matusdrobuliak66 matusdrobuliak66 mentioned this pull request Sep 2, 2025
61 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖-automerge marks PR as ready to be merged for Mergify a:frontend issue affecting the front-end (area group) t:enhancement Improvement or request on an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Frontend: show node as being locked by another user

5 participants