{% set items = [ ('import', 'Import', '/app', pending or ''), ('inventory', 'Inventory', '/inventory', inventory_rows or ''), ('listings', 'Listings', '/listings', listed_count or ''), ('analytics', 'Analytics', '/analytics', ''), ('plugins', 'Plugins', '/plugins', '') ] %}
foilstack v{{ version }}{% if git_sha %}{{ git_sha }}{% endif %}
{% for id, label, href, badge in items %} {{ label }} {% endfor %}
{{ inventory_count }} cards · {{ inventory_value }} at market {{ host_label }} {% if multi_user %}
{% endif %} github
Workflow
{% for id, label, href, badge in items %} {{ label }} {{ badge }} {% endfor %}
Buy me a coffee foilstack is free and always will be
{% block screen %}{% endblock %}
{% block status %}ready{% endblock %}
price data: {{ price_source }} · synced {{ synced_ago }}{% if unsynced_games %} no prices: {{ unsynced_games|join(', ') }} {% endif %} AGPL-3.0
{# Shared helpers first: the per-screen scripts in the block below call into them. Both are loaded here rather than from inside a screen's own markup, so that every page script runs against a fully parsed document and no screen depends on where in the body its script happened to be written. A Jinja comment, not an HTML one: Jinja parses its tags inside HTML comments too, so naming a block in one opens a block. #} {% block scripts %}{% endblock %}