added ModPacks support
This commit is contained in:
@@ -17,6 +17,11 @@
|
||||
<div class="project-title-row">
|
||||
<h1>{{ project.title }}</h1>
|
||||
<span class="category-badge">{{ project.get_category_display }}</span>
|
||||
{% if mods_manifest %}
|
||||
{% if mods_manifest.minecraft %}<span class="category-badge modpack-badge" title="Minecraft version">{{ mods_manifest.minecraft }}</span>{% endif %}
|
||||
{% for loader in mods_manifest.modloaders %}<span class="category-badge modpack-badge" title="Modloader">{{ loader }}</span>{% endfor %}
|
||||
<span class="category-badge modpack-badge" title="Mod count">{{ mods_manifest.totals.total }} mods</span>
|
||||
{% endif %}
|
||||
<span class="project-id-badge" title="Project ID">#{{ project.pk }}</span>
|
||||
</div>
|
||||
{% if project.summary %}<p class="project-summary">{{ project.summary }}</p>{% endif %}
|
||||
@@ -347,10 +352,26 @@
|
||||
<div class="card">
|
||||
<h2><i class="fas fa-cubes"></i> Mods</h2>
|
||||
{% if mods_manifest.files %}
|
||||
<span class="mods-source-badge">{{ mods_manifest.source }}</span>
|
||||
<ul class="mods-list">
|
||||
<div class="mods-summary">
|
||||
<span class="mods-source-badge">{{ mods_manifest.source }}</span>
|
||||
{% if mods_manifest.minecraft %}<span class="mods-stat">MC {{ mods_manifest.minecraft }}</span>{% endif %}
|
||||
{% if mods_manifest.modloaders %}<span class="mods-stat">{{ mods_manifest.modloaders|join:' / ' }}</span>{% endif %}
|
||||
<span class="mods-stat">{{ mods_manifest.totals.total }} mods</span>
|
||||
{% if mods_manifest.totals.required is not None %}
|
||||
<span class="mods-stat">{{ mods_manifest.totals.required }} required</span>
|
||||
<span class="mods-stat">{{ mods_manifest.totals.optional }} optional</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<input type="search" class="mods-filter" id="mods-filter" placeholder="Filter mods…" aria-label="Filter mods">
|
||||
<ul class="mods-list" id="mods-list">
|
||||
{% for mod in mods_manifest.files %}
|
||||
<li><i class="fas fa-cube"></i> {{ mod.name }}</li>
|
||||
<li class="mods-item">
|
||||
<i class="fas fa-cube"></i>
|
||||
<span class="mods-name">{{ mod.name }}</span>
|
||||
{% if mod.file_name and mod.file_name != mod.name %}<span class="mods-file">{{ mod.file_name }}</span>{% endif %}
|
||||
{% if mod.env == 'client' %}<span class="mods-badge client">client</span>{% elif mod.env == 'server' %}<span class="mods-badge server">server</span>{% elif mod.env == 'optional' or mod.required is False %}<span class="mods-badge optional">optional</span>{% endif %}
|
||||
{% if mod.url %}<a class="mods-link" href="{{ mod.url }}" target="_blank" rel="noopener noreferrer" title="Open project page"><i class="fas fa-external-link-alt"></i></a>{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
@@ -496,6 +517,17 @@
|
||||
btn.addEventListener('click', () => window.PacksPreview.open(btn));
|
||||
});
|
||||
}
|
||||
|
||||
// Live filter for the Mods tab.
|
||||
const modsFilter = document.getElementById('mods-filter');
|
||||
if (modsFilter) {
|
||||
modsFilter.addEventListener('input', () => {
|
||||
const q = modsFilter.value.toLowerCase();
|
||||
document.querySelectorAll('#mods-list .mods-item').forEach(item => {
|
||||
item.style.display = item.textContent.toLowerCase().includes(q) ? '' : 'none';
|
||||
});
|
||||
});
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user