[0.2.2.5] - 2025-12-03
- Screen Share Permission Control:[cite_start]Implemented
screenshare_roles shortcode parameter to granularly control who can share their screen[cite: 25].[cite_start]'all' Support: Setting screenshare_roles="all" allows every participant (including guests) to share their screen[cite: 25].[cite_start]Specific Roles: Supports comma-separated role slugs (e.g., screenshare_roles="subscriber,customer")[cite: 25].[cite_start]Presenter Rights: Presenters/Admins always retain screen sharing rights regardless of this setting[cite: 25].
- [cite_start]Implemented
screenshare_roles shortcode parameter to granularly control who can share their screen[cite: 25].
- [cite_start]'all' Support: Setting
screenshare_roles="all" allows every participant (including guests) to share their screen[cite: 25].
- [cite_start]Specific Roles: Supports comma-separated role slugs (e.g.,
screenshare_roles="subscriber,customer")[cite: 25].
- [cite_start]Presenter Rights: Presenters/Admins always retain screen sharing rights regardless of this setting[cite: 25].
- State Persistence (Lobby to Meeting):Seamless Transition: Implemented logic to carry over the user's Microphone (Mute/Unmute) and Camera (On/Off) states from the Lobby to the Meeting Room.Smart Initialization:Camera Off in Lobby: The meeting starts with the camera disabled (no track created to save resources), but the "Enable Camera" button remains active/clickable.Mic Muted in Lobby: The meeting starts with the microphone track muted immediately.Backend Integration: Updated
wpj_generate_token_callback to receive mic_state and cam_state params and store them securely in the WordPress Transient (mic_enabled, cam_enabled).
- Seamless Transition: Implemented logic to carry over the user's Microphone (Mute/Unmute) and Camera (On/Off) states from the Lobby to the Meeting Room.
- Smart Initialization:Camera Off in Lobby: The meeting starts with the camera disabled (no track created to save resources), but the "Enable Camera" button remains active/clickable.Mic Muted in Lobby: The meeting starts with the microphone track muted immediately.
- Camera Off in Lobby: The meeting starts with the camera disabled (no track created to save resources), but the "Enable Camera" button remains active/clickable.
- Mic Muted in Lobby: The meeting starts with the microphone track muted immediately.
- Backend Integration: Updated
wpj_generate_token_callback to receive mic_state and cam_state params and store them securely in the WordPress Transient (mic_enabled, cam_enabled).
- Enhanced UI/UX (Lobby):Icon-Only Device Selectors: Redesigned the Lobby device dropdown buttons to be cleaner (Icon only), removing the text labels to save space.Smart Tooltips:Device Info: Moved the active device name to a multi-line tooltip (e.g., "Pick Microphone - current: Default") that appears on hover.Dynamic Controls: Added real-time dynamic tooltips to Mic/Cam buttons that update based on state (e.g., toggling between "Mute microphone" and "Unmute microphone").Localization: Added new translation keys (
pick_mic_current, pick_cam_current, mute_microphone, disable_camera, etc.) to translations.json.
- Icon-Only Device Selectors: Redesigned the Lobby device dropdown buttons to be cleaner (Icon only), removing the text labels to save space.
- Smart Tooltips:Device Info: Moved the active device name to a multi-line tooltip (e.g., "Pick Microphone - current: Default") that appears on hover.Dynamic Controls: Added real-time dynamic tooltips to Mic/Cam buttons that update based on state (e.g., toggling between "Mute microphone" and "Unmute microphone").
- Device Info: Moved the active device name to a multi-line tooltip (e.g., "Pick Microphone - current: Default") that appears on hover.
- Dynamic Controls: Added real-time dynamic tooltips to Mic/Cam buttons that update based on state (e.g., toggling between "Mute microphone" and "Unmute microphone").
- Localization: Added new translation keys (
pick_mic_current, pick_cam_current, mute_microphone, disable_camera, etc.) to translations.json.
- Parameter Renaming:[cite_start]Renamed
share_roles to screenshare_roles for better clarity and standard naming convention[cite: 27].
- [cite_start]Renamed
share_roles to screenshare_roles for better clarity and standard naming convention[cite: 27].
- Logic Refinement:[cite_start]Updated
wpj_generate_token_callback to calculate can_share status server-side based on the context key and store it in the session[cite: 27].
- [cite_start]Updated
wpj_generate_token_callback to calculate can_share status server-side based on the context key and store it in the session[cite: 27].
- Lobby Logic (
wpj-lobby.js):Refactored populateDeviceDropdowns to update data-wpj-tooltip attributes instead of button text.Added updateControlTooltip() helper for real-time state feedback.Updated proceedToJoin to capture and send current device states to the server.
- Refactored
populateDeviceDropdowns to update data-wpj-tooltip attributes instead of button text.
- Added
updateControlTooltip() helper for real-time state feedback.
- Updated
proceedToJoin to capture and send current device states to the server.
- Meeting Logic (
wpj-meetingroom.js):Updated createVideoTask and createAudioTask to respect micEnabled and camEnabled flags from session data.UX Fix: Ensured the "Enable Camera" button remains enabled (.prop('disabled', false)) even if the user enters the room with the camera turned off, allowing them to enable it later.
- Updated
createVideoTask and createAudioTask to respect micEnabled and camEnabled flags from session data.
- UX Fix: Ensured the "Enable Camera" button remains enabled (
.prop('disabled', false)) even if the user enters the room with the camera turned off, allowing them to enable it later.