Files
scrying-pool/templates/participant-card.hbs
T
uberwald fd0a7868f3 Story 4.1: Tasks 3-6 Complete - Director's Board Integration & Settings Menu
- 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>
2026-05-23 21:29:58 +02:00

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>