Widget:SscCitedSort

From Bodhicitta
Revision as of 13:34, 1 October 2026 by Jeremi (talk | contribs) (Sort switch (Title / Most quoted) for Texts Cited in Śikṣāsamuccaya)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

<style> /* Sort switch for Texts Cited in Śikṣāsamuccaya (rows rendered by Module:SscCitedWorks). */ .ssc-cited-sort { display: flex; justify-content: center; align-items: center; gap: .5rem; font-size: .9rem; } .ssc-cited-sort__label { color: #6c757d; } .ssc-cited-sort button { border: 1px solid rgba(186, 27, 29, .35); background: transparent; color: inherit; border-radius: 999px; padding: .2rem .9rem; cursor: pointer; } .ssc-cited-sort button:hover { background: rgba(186, 27, 29, .08); } .ssc-cited-sort button[aria-pressed="true"] { background: rgba(186, 27, 29, .15); border-color: rgba(186, 27, 29, .6); } </style>

Sort by <button type="button" data-sort="title" aria-pressed="true">Title</button> <button type="button" data-sort="count" aria-pressed="false">Most quoted</button>

<script> (function () { var bar = document.currentScript.previousElementSibling; function sortRows(mode) { var list = document.querySelector('.ssc-cited-list'); if (!list) return; var rows = Array.prototype.slice.call(list.children).filter(function (el) { return el.hasAttribute('data-order'); }); rows.sort(function (a, b) { var oa = +a.getAttribute('data-order'), ob = +b.getAttribute('data-order'); if (mode === 'count') { var d = +b.getAttribute('data-count') - +a.getAttribute('data-count'); if (d) return d; } return oa - ob; }); rows.forEach(function (r) { list.appendChild(r); }); bar.querySelectorAll('button').forEach(function (b) { b.setAttribute('aria-pressed', b.getAttribute('data-sort') === mode ? 'true' : 'false'); }); } bar.addEventListener('click', function (e) { var b = e.target.closest('button[data-sort]'); if (b) sortRows(b.getAttribute('data-sort')); }); })(); </script>