Merge pull request 'add option to also hide fav activity from public' (#40) from master into 98
Reviewed-on: #40
This commit is contained in:
5
public/s/img/ghost_fav.svg
Normal file
5
public/s/img/ghost_fav.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100">
|
||||
<rect width="100" height="100" fill="#242526"/>
|
||||
<path d="M50 22 C37 22 28 32 28 45 L28 72 L35 66 L42 72 L50 66 L58 72 L65 66 L72 72 L72 45 C72 32 63 22 50 22 Z" fill="#666666" opacity="0.6"/>
|
||||
<text x="50" y="58" font-family="system-ui, -apple-system, sans-serif" font-weight="bold" font-size="36" fill="#ffffff" text-anchor="middle">?</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 443 B |
@@ -8768,23 +8768,39 @@ class NotificationSystem {
|
||||
// Build DOM nodes imperatively (avoids Sanitizer stripping inline border-color)
|
||||
const fragment = document.createDocumentFragment();
|
||||
data.favs.forEach(fav => {
|
||||
const avatarUrl = fav.avatar_file
|
||||
? `/a/${fav.avatar_file}`
|
||||
: (fav.avatar ? `/t/${fav.avatar}.webp` : '/a/default.png');
|
||||
if (fav.hide_fav_badge) {
|
||||
const a = document.createElement('a');
|
||||
a.className = 'ghost-fav';
|
||||
a.setAttribute('tooltip', 'Ghost Fav');
|
||||
a.setAttribute('flow', 'up');
|
||||
a.style.cursor = 'default';
|
||||
|
||||
const a = document.createElement('a');
|
||||
a.href = `/user/${fav.user.toLowerCase()}`;
|
||||
a.setAttribute('tooltip', fav.display_name || fav.user);
|
||||
a.setAttribute('flow', 'up');
|
||||
const img = document.createElement('img');
|
||||
img.src = '/s/img/ghost_fav.svg';
|
||||
img.style.height = '32px';
|
||||
img.style.width = '32px';
|
||||
|
||||
const img = document.createElement('img');
|
||||
img.src = avatarUrl;
|
||||
img.style.height = '32px';
|
||||
img.style.width = '32px';
|
||||
if (fav.username_color) img.style.borderColor = fav.username_color;
|
||||
a.appendChild(img);
|
||||
fragment.appendChild(a);
|
||||
} else {
|
||||
const avatarUrl = fav.avatar_file
|
||||
? `/a/${fav.avatar_file}`
|
||||
: (fav.avatar ? `/t/${fav.avatar}.webp` : '/a/default.png');
|
||||
|
||||
a.appendChild(img);
|
||||
fragment.appendChild(a);
|
||||
const a = document.createElement('a');
|
||||
a.href = `/user/${fav.user.toLowerCase()}`;
|
||||
a.setAttribute('tooltip', fav.display_name || fav.user);
|
||||
a.setAttribute('flow', 'up');
|
||||
|
||||
const img = document.createElement('img');
|
||||
img.src = avatarUrl;
|
||||
img.style.height = '32px';
|
||||
img.style.width = '32px';
|
||||
if (fav.username_color) img.style.borderColor = fav.username_color;
|
||||
|
||||
a.appendChild(img);
|
||||
fragment.appendChild(a);
|
||||
}
|
||||
});
|
||||
|
||||
favsContainer.innerHTML = '';
|
||||
|
||||
@@ -1150,6 +1150,37 @@
|
||||
});
|
||||
}
|
||||
|
||||
const hideFavBadgeToggle = document.getElementById('hide_fav_badge_toggle');
|
||||
if (hideFavBadgeToggle) {
|
||||
hideFavBadgeToggle.addEventListener('change', async function() {
|
||||
const hide_fav_badge = hideFavBadgeToggle.checked;
|
||||
try {
|
||||
const res = await fetch('/api/v2/settings/hide_fav_badge', {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'X-CSRF-Token': window.f0ckSession ? window.f0ckSession.csrf_token : ''
|
||||
},
|
||||
body: new URLSearchParams({ hide_fav_badge })
|
||||
});
|
||||
const data = await res.json();
|
||||
if (data.success) {
|
||||
showStatus('Hide favorite badge preference updated!', 'success');
|
||||
if (window.f0ckSession) {
|
||||
window.f0ckSession.hide_fav_badge = hide_fav_badge;
|
||||
}
|
||||
} else {
|
||||
alert(data.msg || 'Error saving preference');
|
||||
hideFavBadgeToggle.checked = !hide_fav_badge;
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Update Hide Fav Badge error:', err);
|
||||
alert('Connection error');
|
||||
hideFavBadgeToggle.checked = !hide_fav_badge;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// New Dual Column Layout Toggle
|
||||
const layoutToggle = document.getElementById('use_new_layout_toggle');
|
||||
if (layoutToggle) {
|
||||
|
||||
Reference in New Issue
Block a user