diff --git a/templates/index.html.jinja b/templates/index.html.jinja index 370eee3b5..196fef95c 100644 --- a/templates/index.html.jinja +++ b/templates/index.html.jinja @@ -1,9 +1,26 @@ {% extends "base.html.jinja" %} {% block main %} -
+
+
+
+
+ + +
+
+
+
+
{% for project in completion_progress | sort(attribute='core_completion,completion') | reverse %} -
+

@@ -63,8 +80,37 @@ }); } + function sortLanguages(sortBy) { + const languageContainer = document.getElementById('languageContainer'); + if (!languageContainer) { + return; + } + const row = languageContainer.querySelector('.row'); + if (!row) { + return; + } + + const cards = Array.from(row.children); + cards.sort((a, b) => { + if (sortBy === 'name') { + return a.dataset.name.localeCompare(b.dataset.name); + } + return parseFloat(b.dataset.completion) - parseFloat(a.dataset.completion); + }); + + row.innerHTML = ''; + cards.forEach(card => row.appendChild(card)); + } + updateProgressBarVisibility(); + const sortDropdown = document.getElementById('sortDropdown'); + if (sortDropdown) { + sortDropdown.addEventListener('change', function() { + sortLanguages(this.value); + }); + } + window.addEventListener('resize', updateProgressBarVisibility); {% endblock extrascript %}