matrix.org/templates/shortcodes/all_servers.html

106 lines
4.4 KiB
HTML

{% import "macros/servers.html" as srvutils %}
{% set servers_data = load_data(path="content/ecosystem/servers/servers.toml") %}
{% set licences = [] %}
{% set languages = [] %}
{% for server in servers_data.servers %}
{% set_global licences = licences | concat(with=server.licence) %}
{% set_global languages = languages | concat(with=server.language) %}
{% endfor %}
{% set licences = licences | unique | sort %}
{% set languages = languages | unique | sort %}
<div class="filters">
<div class="filter-wrap">
<button id="filter-maturity" class="filter">
Maturity
<div class="divider"></div>
<img src="/assets/down-arrow.svg" alt="Downward facing arrow">
</button>
<div id="filter-maturity-menu" class="filter-menu">
<p>The client can support any of the maturity levels checked.</p>
<div class="filter-option">
<input id="maturity-stable" type="checkbox" checked>
<label for="maturity-stable">Stable</label>
</div>
<div class="filter-option">
<input id="maturity-beta" type="checkbox" checked>
<label for="maturity-beta">Beta</label>
</div>
<div class="filter-option">
<input id="maturity-alpha" type="checkbox" checked>
<label for="maturity-alpha">Alpha</label>
</div>
<div class="filter-option">
<input id="maturity-obsolete" type="checkbox">
<label for="maturity-obsolete">Obsolete</label>
</div>
<div class="reset-links">Select <button>all</button> - <button>none</button></div>
</div>
</div>
<div class="filter-wrap">
<button id="filter-licence" class="filter">
Licence
<div class="divider"></div>
<img src="/assets/down-arrow.svg" alt="Downward facing arrow">
</button>
<div id="filter-licence-menu" class="filter-menu">
<p>The client can support any of the licences checked.</p>
{% for licence in licences %}
<div class="filter-option">
<input id="licence-{{ licence | slugify }}" type="checkbox" checked>
<label for="licence-{{ licence | slugify }}">{{ licence }}</label>
</div>
{% endfor %}
<div class="reset-links">Select <button>all</button> - <button>none</button></div>
</div>
</div>
<div class="filter-wrap">
<button id="filter-language" class="filter">
Language
<div class="divider"></div>
<img src="/assets/down-arrow.svg" alt="Downward facing arrow">
</button>
<div id="filter-language-menu" class="filter-menu">
<p>The client must support any of the languages checked.</p>
{% for language in languages %}
<div class="filter-option">
<input id="language-{{ language | slugify }}" type="checkbox" checked>
<label for="language-{{ language | slugify }}">{{ language }}</label>
</div>
{% endfor %}
<div class="reset-links">Select <button>all</button> - <button>none</button></div>
</div>
</div>
</div>
<div id="filters-overlay"></div>
<div id="all-servers" class="projects-card-deck">
{% for server in servers_data.servers | sort(attribute="maturity") | reverse %}
<div>
<div class="project-card {{ srvutils::classes(server=server) }}">
<div class="title-row">
<h3>{{ server.name }}</h3>
<div class="maturity {{ server.maturity | lower }}">{{ server.maturity }}</div>
</div>
<div>{{ server.licence }} {{ server.language }}</div>
<span>{{ server.description | safe }}</span>
<div class="server-links">
{% if server.repository %}
<a href="{{ server.repository }}">
{{ load_data(path="/assets/projects/repo.svg") | safe }}
Repository
</a>
{% endif %}
{% if server.room %}
<a href="https://matrix.to/#/{{ server.room }}">
{{ load_data(path="/assets/projects/matrix.svg") | safe }}
Matrix Room
</a>
{% endif %}
</div>
</div>
</div>
{% endfor %}
</div>