{% extends "layouts/app.twig" %} {% block nav_controls %}
{% for genre in filters.genres %} {% endfor %} {% for platform in filters.platforms %} {% endfor %}
{% for mode in view_modes %} {% if mode == 'grid' %} {% endif %} {% if mode == 'list' %} {% endif %} {% if mode == 'covers' %} {% endif %} {% endfor %}
{% for key, label in sort_options %} {{ label }} {% if sort == key %} {% endif %} {% endfor %}
{% endblock %} {% block sidebar %}

Filters

{% if available_filters.genres %}
{% endif %} {% if available_filters.platforms %}
{% endif %}
Clear All
{% if filters.genres or filters.platforms or search %}

Active Filters

{% if search %}
Search: "{{ search }}"
{% endif %} {% for genre in filters.genres %}
Genre: {{ genre }}
{% endfor %} {% for platform in filters.platforms %}
Platform: {{ platform }}
{% endfor %}
{% endif %}

Quick Stats

Total Games {{ pagination.total_items }}
This Page {{ games|length }}
{% if pagination.total_pages > 1 %}
Page {{ pagination.current_page }} of {{ pagination.total_pages }}
{% endif %}
{% endblock %} {% block content %}

Games

{% if pagination.total_items > 0 %}
{{ pagination.total_items }} games from {{ games|reduce((carry, game) => carry + game.platform_count, 0) }} platforms {% if search %} matching "{{ search }}" {% endif %} {% if filters.genres or filters.platforms %} {% if filters.genres %} {{ filters.genres|join(', ') }} {% endif %} {% if filters.platforms %} {{ filters.platforms|join(', ') }} {% endif %} {% endif %}
{% endif %}
{% if games is empty %}

{% if search or filters.genres or filters.platforms %} No games found matching your criteria {% else %} No games found {% endif %}

{% if search or filters.genres or filters.platforms %} Try adjusting your search terms or filters. {% else %} Start syncing your gaming libraries to see your games here. {% endif %}

{% if search or filters.genres or filters.platforms %} Clear filters {% endif %}
{% else %} {% if view_mode == 'list' %}
{% elseif view_mode == 'covers' %}
{% for game in games %}
{% if game.image_url %}
{{ game.title }}
{% else %}
{% endif %}
{{ game.title }}

{{ game.platform_count }} platform{{ game.platform_count > 1 ? 's' : '' }}

{% endfor %}
{% else %}
{% for game in games %}
{% if game.image_url %} {{ game.title }} {% else %}
{% endif %}
{{ game.title }}

{{ game.platform_count }} platform{{ game.platform_count > 1 ? 's' : '' }} {% if game.platforms %} {{ game.platforms|join(', ') }} {% endif %}

{{ game.total_playtime|format_duration }} played {% if game.max_completion > 0 %} {{ game.max_completion }}% complete {% endif %}
{% if game.genres %}
{% for genre in game.genres|slice(0, 3) %} {{ genre }} {% endfor %}
{% endif %}
{% endfor %}
{% endif %} {% if pagination.total_pages > 1 %}
Showing {{ (pagination.current_page - 1) * pagination.per_page + 1 }} to {{ min(pagination.current_page * pagination.per_page, pagination.total_items) }} of {{ pagination.total_items }} games
per page
{% if pagination.has_prev %} Previous {% else %} Previous {% endif %} {% set start_page = max(1, pagination.current_page - 2) %} {% set end_page = min(pagination.total_pages, pagination.current_page + 2) %} {% if start_page > 1 %} 1 {% if start_page > 2 %} ... {% endif %} {% endif %} {% for page_num in start_page..end_page %} {% if page_num == pagination.current_page %} {{ page_num }} {% else %} {{ page_num }} {% endif %} {% endfor %} {% if end_page < pagination.total_pages %} {% if end_page < pagination.total_pages - 1 %} ... {% endif %} {{ pagination.total_pages }} {% endif %} {% if pagination.has_next %} Next {% else %} Next {% endif %}
{% endif %} {% endif %}
{% endblock %}