cd score layout modern fixes
This commit is contained in:
@@ -12866,6 +12866,11 @@ textarea#profile_description {
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.layout-modern .xd-score-wrapper {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0px 5px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes xd-pulse {
|
@keyframes xd-pulse {
|
||||||
|
|
||||||
0%,
|
0%,
|
||||||
|
|||||||
@@ -1262,9 +1262,34 @@ class CommentSystem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Save xd-score-wrapper before innerHTML wipe.
|
||||||
|
// On first load it lives as a previous sibling (server-rendered); afterwards inside.
|
||||||
|
let xdWrapperHtml = null;
|
||||||
|
const xdInside = this.container.querySelector('.xd-score-wrapper');
|
||||||
|
if (xdInside) {
|
||||||
|
xdWrapperHtml = xdInside.outerHTML;
|
||||||
|
} else {
|
||||||
|
const prev = this.container.previousElementSibling;
|
||||||
|
if (prev && prev.classList.contains('xd-score-wrapper')) {
|
||||||
|
xdWrapperHtml = prev.outerHTML;
|
||||||
|
prev.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const mediaState = this.saveMediaState();
|
const mediaState = this.saveMediaState();
|
||||||
this.container.innerHTML = html;
|
this.container.innerHTML = html;
|
||||||
this.restoreMediaState(mediaState);
|
this.restoreMediaState(mediaState);
|
||||||
|
|
||||||
|
// Re-inject xd-score-wrapper between the comment input and the comments list
|
||||||
|
if (xdWrapperHtml) {
|
||||||
|
const commentsList = this.container.querySelector('.comments-list');
|
||||||
|
if (commentsList) {
|
||||||
|
const tmp = document.createElement('div');
|
||||||
|
tmp.innerHTML = xdWrapperHtml;
|
||||||
|
const xdEl = tmp.firstElementChild;
|
||||||
|
if (xdEl) this.container.insertBefore(xdEl, commentsList);
|
||||||
|
}
|
||||||
|
}
|
||||||
this.syncSubscribeButton(isSubscribed);
|
this.syncSubscribeButton(isSubscribed);
|
||||||
CommentSystem.autoplayConvertedGifs(this.container);
|
CommentSystem.autoplayConvertedGifs(this.container);
|
||||||
|
|
||||||
|
|||||||
@@ -4923,9 +4923,6 @@ window.cancelAnimFrame = (function () {
|
|||||||
const pageItemId = container.dataset.itemId;
|
const pageItemId = container.dataset.itemId;
|
||||||
if (pageItemId && String(pageItemId) !== String(itemId)) return;
|
if (pageItemId && String(pageItemId) !== String(itemId)) return;
|
||||||
|
|
||||||
const favs = document.getElementById('favs');
|
|
||||||
if (!favs) return;
|
|
||||||
|
|
||||||
document.querySelectorAll('.xd-score-wrapper').forEach(w => w.remove());
|
document.querySelectorAll('.xd-score-wrapper').forEach(w => w.remove());
|
||||||
|
|
||||||
if (score <= 0) return;
|
if (score <= 0) return;
|
||||||
@@ -4935,7 +4932,15 @@ window.cancelAnimFrame = (function () {
|
|||||||
const newWrapper = document.createElement('div');
|
const newWrapper = document.createElement('div');
|
||||||
newWrapper.className = 'xd-score-wrapper';
|
newWrapper.className = 'xd-score-wrapper';
|
||||||
newWrapper.innerHTML = `<span class="xd-score-badge ${meta.cls}" tooltip="xD Score: ${score} pts" flow="up">${meta.label} <span class="xd-score-num">${score}</span></span>`;
|
newWrapper.innerHTML = `<span class="xd-score-badge ${meta.cls}" tooltip="xD Score: ${score} pts" flow="up">${meta.label} <span class="xd-score-num">${score}</span></span>`;
|
||||||
favs.parentNode.insertBefore(newWrapper, favs.nextSibling);
|
|
||||||
|
// Insert inside container, before .comments-list — matching the position
|
||||||
|
// that comments.js uses after each render.
|
||||||
|
const commentsList = container.querySelector('.comments-list');
|
||||||
|
if (commentsList) {
|
||||||
|
container.insertBefore(newWrapper, commentsList);
|
||||||
|
} else {
|
||||||
|
container.parentNode.insertBefore(newWrapper, container);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
window.updateXdBadgeFromScore = (itemId, score) => {
|
window.updateXdBadgeFromScore = (itemId, score) => {
|
||||||
|
|||||||
@@ -5,6 +5,14 @@
|
|||||||
{{-- LEFT SIDEBAR: comments + tags --}}
|
{{-- LEFT SIDEBAR: comments + tags --}}
|
||||||
<div class="item-sidebar-left">
|
<div class="item-sidebar-left">
|
||||||
|
|
||||||
|
@if(enable_xd_score && item.xd_score > 0)
|
||||||
|
<div class="xd-score-wrapper">
|
||||||
|
<span class="xd-score-badge xd-tier-{{ item.xd_tier }}" tooltip="xD Score: {{ item.xd_score }} pts" flow="up">
|
||||||
|
{{ item.xd_label }} <span class="xd-score-num">{{ item.xd_score }}</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
@if(session || !hide_comments_from_public)
|
@if(session || !hide_comments_from_public)
|
||||||
<div id="comments-container"
|
<div id="comments-container"
|
||||||
data-item-id="{{ item.id }}"
|
data-item-id="{{ item.id }}"
|
||||||
@@ -148,13 +156,7 @@
|
|||||||
<a href="/user/{{ fav.user.toLowerCase() }}" tooltip="{!! fav.display_name || fav.user !!}" flow="up"><img src="@if(fav.avatar_file)/a/{{ fav.avatar_file }}@elseif(fav.avatar)/t/{{ fav.avatar }}.webp@else/a/default.png@endif" style="height: 32px; width: 32px@if(fav.username_color); border-color: {{ fav.username_color }}@endif" loading="lazy" /></a>
|
<a href="/user/{{ fav.user.toLowerCase() }}" tooltip="{!! fav.display_name || fav.user !!}" flow="up"><img src="@if(fav.avatar_file)/a/{{ fav.avatar_file }}@elseif(fav.avatar)/t/{{ fav.avatar }}.webp@else/a/default.png@endif" style="height: 32px; width: 32px@if(fav.username_color); border-color: {{ fav.username_color }}@endif" loading="lazy" /></a>
|
||||||
@endeach
|
@endeach
|
||||||
</span>
|
</span>
|
||||||
@if(enable_xd_score && item.xd_score > 0)
|
|
||||||
<div class="xd-score-wrapper">
|
|
||||||
<span class="xd-score-badge xd-tier-{{ item.xd_tier }}" tooltip="xD Score: {{ item.xd_score }} pts" flow="up">
|
|
||||||
{{ item.xd_label }} <span class="xd-score-num">{{ item.xd_score }}</span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user