Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions src/frontend/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ let stars = JSON.parse(localStorage.getItem('codedash-stars') || '[]');
let tags = JSON.parse(localStorage.getItem('codedash-tags') || '{}');
let sessionTitles = JSON.parse(localStorage.getItem('codedash-titles') || '{}');
let showAITitles = localStorage.getItem('codedash-ai-titles') !== 'false';
let showAllSessionsListBadges = localStorage.getItem('codedash-all-sessions-list-badges') !== 'false';

// ── Color palette for projects ─────────────────────────────────

Expand Down Expand Up @@ -291,6 +292,12 @@ function toggleAITitles(checked) {
render();
}

function toggleAllSessionsListBadges(checked) {
showAllSessionsListBadges = checked;
localStorage.setItem('codedash-all-sessions-list-badges', checked ? 'true' : 'false');
render();
}

function saveGroupingMode(mode) {
groupingMode = normalizeGroupingMode(mode);
localStorage.setItem('codedash-grouping-mode', groupingMode);
Expand Down Expand Up @@ -748,6 +755,7 @@ function renderListCard(s, idx) {
var isFocused = focusedIndex === idx;
var projName = getProjectName(s.project);
var projColor = getProjectColor(projName);
var showBadges = showAllSessionsListBadges;

var classes = 'list-row';
if (isSelected) classes += ' selected';
Expand All @@ -756,12 +764,12 @@ function renderListCard(s, idx) {
var html = '<div class="' + classes + '" data-id="' + s.id + '" onclick="onCardClick(\'' + s.id + '\', event)">';
var listToolLabel = s.tool === 'claude-ext' ? 'claude ext' : s.tool;
html += '<span class="tool-badge tool-' + s.tool + '">' + escHtml(listToolLabel) + '</span>';
if (s.mcp_servers && s.mcp_servers.length > 0) {
if (showBadges && s.mcp_servers && s.mcp_servers.length > 0) {
s.mcp_servers.forEach(function(m) {
html += '<span class="tool-badge badge-mcp">' + escHtml(m) + '</span>';
});
}
if (s.skills && s.skills.length > 0) {
if (showBadges && s.skills && s.skills.length > 0) {
s.skills.forEach(function(sk) {
html += '<span class="tool-badge badge-skill">' + escHtml(sk) + '</span>';
});
Expand Down Expand Up @@ -1534,6 +1542,7 @@ function renderSettings(container) {
var savedTheme = localStorage.getItem('codedash-theme') || 'dark';
var savedTerminal = localStorage.getItem('codedash-terminal') || '';
var aiTitlesOn = localStorage.getItem('codedash-ai-titles') === 'true';
var allSessionsListBadgesOn = localStorage.getItem('codedash-all-sessions-list-badges') !== 'false';
var savedGroupingMode = normalizeGroupingMode(localStorage.getItem('codedash-grouping-mode'));

var html = '<div class="settings-page">';
Expand Down Expand Up @@ -1573,6 +1582,15 @@ function renderSettings(container) {
html += '</div>';
html += '</div>';

// All Sessions list badges
html += '<div class="settings-group">';
html += '<label class="settings-label">Session List Badges</label>';
html += '<div class="settings-checkbox">';
html += '<input type="checkbox" id="settingsAllSessionsBadgesToggle"' + (allSessionsListBadgesOn ? ' checked' : '') + ' onchange="toggleAllSessionsListBadges(this.checked)">';
html += '<span style="font-size:13px;color:var(--text-secondary)">Show MCP and Skills badges in list-view session rows</span>';
html += '</div>';
html += '</div>';

// Grouping
html += '<div class="settings-group">';
html += '<label class="settings-label">Grouping</label>';
Expand Down
Loading