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:
@@ -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