diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 22c2a35..ae56cd0 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========= +1.0.9 (Unreleased) +------------------ +- Enh: Competition view auto-scrolls to the last finished match above a live match. +- Enh: "Show all tips" modal reuses the match card header instead of a separate pairing/result line. +- Fix: Team flag badges drop their white background, removing the white box around flags on live match cards. + 1.0.8 (June 12, 2026) --------------------- - Fix: Undrawn knockout fixtures no longer mark the sync as failed, which had blocked point calculation for the whole competition. diff --git a/resources/css/kickoff.css b/resources/css/kickoff.css index a659cf9..a0e2f2d 100644 --- a/resources/css/kickoff.css +++ b/resources/css/kickoff.css @@ -154,6 +154,11 @@ background: #fff; transition: border-color 0.2s; } +/* Fixed area above the scrollable modal body holding the match-card preview. */ +.kickoff-modal-subheader { + padding: 1rem 1rem 0; +} +.kickoff-modal-subheader .kickoff-match-card { margin-bottom: 1rem; } .kickoff-match-card.is-tipped { border-left: 3px solid #28a745; } .kickoff-match-card-meta { display: grid; grid-template-columns: 1fr auto 1fr; @@ -212,6 +217,9 @@ outline: 1px solid rgba(0, 0, 0, 0.12); outline-offset: -1px; } +.kickoff-team-badge--flag img { + background: transparent; +} .kickoff-match-score { display: flex; align-items: center; gap: 4px; flex-shrink: 0; diff --git a/views/competition/_detail_modal.php b/views/competition/_detail_modal.php index 8ded7da..7c6a11f 100644 --- a/views/competition/_detail_modal.php +++ b/views/competition/_detail_modal.php @@ -12,8 +12,20 @@ var modalEl = document.getElementById('kickoff-detail-modal'); if (!modalEl) return; var \$body = \$(modalEl).find('.modal-body'); + var \$subheader = \$(modalEl).find('[data-modal-subheader]'); var loadingHtml = '
…
'; + // The loaded content may carry a [data-modal-preview] block (e.g. the + // match card on the tips modal). Lift it out of the scrollable body + // into the fixed sub-header so it stays pinned above the scroll. + function relocatePreview() { + \$subheader.empty().hide(); + var \$preview = \$body.find('[data-modal-preview]').first(); + if (\$preview.length) { + \$subheader.append(\$preview).show(); + } + } + // Rebind on every script run (HumHub Pjax can re-execute registered JS). // The namespaced .off() is the cheap guard against accumulating handlers. \$(document).off('click.kickoffDetailModal'); @@ -23,12 +35,14 @@ var titleAttr = \$(this).attr('data-modal-title'); if (!url) return; \$body.html(loadingHtml); + \$subheader.empty().hide(); if (titleAttr) { \$(modalEl).find('.modal-title').text(titleAttr); } var isShown = modalEl.classList.contains('show'); \$.get(url).done(function (html) { \$body.html(html); + relocatePreview(); }).fail(function () { \$body.html('Could not load.
'); }); @@ -58,6 +72,7 @@= Yii::t('KickoffModule.base', 'Loading…') ?>