Templates modifiés (22 fichiers): - _icons.html: +14 new icons (paperclip, external-link, sparkles, lightbulb, tag, file-text, save, upload, trending-up, zap, alert-triangle, user, eye-off) - base.html: +8 JS icons, 🦎🐙🔑🔗👁📋🔲📑❓⚠️→SVG - page_editor.html: 43→0 émojis (📎📄🔒🔗⭐📋📁✨📝🗄📑📊📅🗓🖼📥🌐✏💬💡 etc) - settings.html: 30→0 (⚙️📋🏷🧩👥💾🙈👁🔒🌙☀️🌳📊📝⚠🦎✅🐙🔗✏🗑) - local_workspace.html: 25→0 (📄📁✏🗑⚠📋➕) - gitea_workspace.html: 25→0 (🔗📄📤🔄⚙📁📄🔒✏🗑💾) - board.html: 13→0 (📁📊📋☰📈👥✕✓🗑⚡🔍) - workspace.html: 11→0 (🏠🔑⚙📁🔗📂🐙) - landing.html: 8→0 (📚🚀📝📊🦎🌐🔒⚡) - trash.html, table_view, dashboard, accounts, card_detail, public_page, workspaces, team_load, notes, _header, detailed_board, card, board_fragment - Ajouté import _icons.html aux fragments standalone - 143 tests passent
51 lines
2.1 KiB
HTML
51 lines
2.1 KiB
HTML
{% from '_icons.html' import fd_icon %}
|
|
<!-- Team Load — Notion-style stacked bar chart -->
|
|
<div id="view-content" x-data="teamLoad()" class="team-load">
|
|
{% for member in team_data %}
|
|
<div class="team-member">
|
|
<div class="team-count">{{ member.total }}</div>
|
|
<div class="team-bar-stack" style="height: {{ member.total * 32 }}px; min-height: 40px;">
|
|
{% if member.complete > 0 %}
|
|
<div class="team-bar-segment done"
|
|
style="height: {{ (member.complete / member.total * 100)|round }}%;"
|
|
title="Complete: {{ member.complete }}"></div>
|
|
{% endif %}
|
|
{% if member.progress > 0 %}
|
|
<div class="team-bar-segment progress"
|
|
style="height: {{ (member.progress / member.total * 100)|round }}%;"
|
|
title="In progress: {{ member.progress }}"></div>
|
|
{% endif %}
|
|
{% if member.todo > 0 %}
|
|
<div class="team-bar-segment todo"
|
|
style="height: {{ (member.todo / member.total * 100)|round }}%;"
|
|
title="To-do: {{ member.todo }}"></div>
|
|
{% endif %}
|
|
</div>
|
|
<div class="team-avatar" title="{{ member.name }}">{{ member.initial }}</div>
|
|
<div style="font-size:12px; color:var(--text-secondary); text-align:center; max-width:60px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;">
|
|
{{ member.name }}
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
|
|
{% if not team_data %}
|
|
<div style="text-align:center; padding:48px; width:100%; color:var(--text-dim);">
|
|
<div style="margin-bottom:16px;">{{ fd_icon("users",48) }}</div>
|
|
<h3>No team data</h3>
|
|
<p style="margin-top:8px;">Assign issues to team members to see their workload.</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="status-legend" style="justify-content:center; padding: 0 24px 24px;">
|
|
<div class="legend-item"><span class="legend-dot" style="background:var(--blue);"></span> To-do</div>
|
|
<div class="legend-item"><span class="legend-dot" style="background:var(--orange);"></span> In progress</div>
|
|
<div class="legend-item"><span class="legend-dot" style="background:var(--green);"></span> Complete</div>
|
|
</div>
|
|
|
|
<script>
|
|
function teamLoad() {
|
|
return {};
|
|
}
|
|
</script>
|