fd0a7868f3
- Task 3: Extended FoundryAdapter with user flag access methods
- Added getFlag(userId, scope, key) method
- Added setFlag(userId, scope, key, value) method
- Added getFlagModule(userId, key) convenience method
- Added setFlagModule(userId, key, value) convenience method
- Task 4: Integrated Privacy Settings with Director's Board
- Updated participant-card.hbs to show Reaction Cam badge
- Modified boardUtils.js to pass playerPrivacyManager through context
- Updated DirectorsBoard to accept and pass playerPrivacyManager
- Added CSS styles for Reaction Cam badge (SP accent color)
- Task 5: Registered PlayerPrivacyPanel in module settings
- Added settings menu registration in module.js Hooks.once('ready')
- Available to all users (restricted: false)
- Uses localized labels and hints
- Task 6: Added all localization strings
- Added SCRYING_POOL.PrivacyPanel.* strings for panel UI
- Added SCRYING_POOL.Settings.* strings for settings menu
- Updated story file with task completion status
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
37 lines
1.3 KiB
Handlebars
37 lines
1.3 KiB
Handlebars
{{!-- Participant Card — single participant tile in the Director's Board --}}
|
|
<div class="scrying-pool participant-card sp-state-{{state}}{{#if hasPendingOp}} sp-state-pending{{/if}}"
|
|
role="listitem"
|
|
aria-label="{{cardAriaLabel}}"
|
|
data-user-id="{{userId}}"
|
|
tabindex="0">
|
|
|
|
{{!-- Avatar (48px rounded) --}}
|
|
<div class="participant-card__avatar">
|
|
<img src="{{avatarSrc}}" alt="Avatar of {{name}}" />
|
|
{{!-- Reaction Cam badge - Story 4.1 --}}
|
|
{{#if isReactionCamEnabled}}
|
|
<span class="participant-card__badge participant-card__badge--reaction-cam"
|
|
role="status"
|
|
aria-label="Reaction Cam: Enabled"
|
|
title="Reaction Cam: Enabled">
|
|
<i class="fas fa-video" aria-hidden="true"></i>
|
|
</span>
|
|
{{/if}}
|
|
</div>
|
|
|
|
{{!-- Name (12px, 2-line truncate) --}}
|
|
<p class="participant-card__name">{{name}}</p>
|
|
|
|
{{!-- Toggle overlay — revealed on hover; independently keyboard-focusable --}}
|
|
<button class="participant-card__toggle"
|
|
type="button"
|
|
data-action="toggle-participant"
|
|
data-user-id="{{userId}}"
|
|
role="button"
|
|
aria-label="{{toggleAriaLabel}}"
|
|
tabindex="-1">
|
|
<i class="fas {{#if isHidden}}fa-eye{{else}}fa-eye-slash{{/if}}" aria-hidden="true"></i>
|
|
</button>
|
|
|
|
</div>
|