{% extends "base.html" %} {% import "partials/bag_card.html" as bag_card %} {% import "partials/brew_card.html" as brew_card %} {% import "partials/icons.html" as icons %} {% block title %}Brewlog{% endblock %} {% block head %} {% if is_authenticated %} {% endif %} {% endblock %} {% block content %} {% if is_authenticated %} {{ icons::camera("h-5 w-5") }} Scan {{ icons::location("h-5 w-5") }} Check In {{ icons::plus("h-5 w-5") }} Add {{ icons::spinner("h-5 w-5") }} Waiting for response… {% include "partials/forms/scan_result_form.html" %} {% endif %} Recent Brews View all brews → {% if !recent_brews.is_empty() %} {{ icons::chevron_left("h-5 w-5") }} {% for brew in recent_brews %} {{ brew_card::card(brew, is_authenticated) }} {% endfor %} {{ icons::chevron_right("h-5 w-5") }} {% else %} {% for _ in 0..6 %} {% endfor %} No brews yet {% endif %} Open Bags View all bags → {% if !open_bags.is_empty() %} {{ icons::chevron_left("h-5 w-5") }} {% for bag in open_bags %} {{ bag_card::card(bag, is_authenticated) }} {% endfor %} {{ icons::chevron_right("h-5 w-5") }} {% else %} {% for _ in 0..6 %} {% endfor %} No open bags {% endif %} Recent Activity View full timeline → {% if !recent_events.is_empty() %} {% for event in recent_events %} {% if event.entity_type == "brew" %}{{ icons::beaker("h-5 w-5") }}{% elif event.entity_type == "roast" %}{{ icons::coffee_bean("h-5 w-5") }}{% elif event.entity_type == "roaster" %}{{ icons::fire("h-5 w-5") }}{% elif event.entity_type == "bag" %}{{ icons::bag("h-5 w-5") }}{% elif event.entity_type == "cup" %}{{ icons::cup("h-5 w-5") }}{% elif event.entity_type == "cafe" %}{{ icons::location("h-5 w-5") }}{% elif event.entity_type == "gear" %}{{ icons::grinder("h-5 w-5") }}{% else %}{{ icons::beaker("h-5 w-5") }}{% endif %} {{ event.title }}{% if let Some(sub) = event.subtitle %} ยท {{ sub }}{% endif %} {{ event.relative_date_label }} {% endfor %} {% else %} {% for _ in 0..3 %} {% endfor %} No activity yet {% endif %} {% if !stat_cards.is_empty() %} Stats View all stats → {{ icons::chevron_left("h-5 w-5") }} {% for card in stat_cards %} {% if card.icon == "coffee_bean" %}{{ icons::coffee_bean("h-6 w-6 text-accent") }}{% else if card.icon == "beaker" %}{{ icons::beaker("h-6 w-6 text-accent") }}{% else if card.icon == "map" %}{{ icons::map("h-6 w-6 text-accent") }}{% else if card.icon == "location" %}{{ icons::location("h-6 w-6 text-accent") }}{% else if card.icon == "fire" %}{{ icons::fire("h-6 w-6 text-accent") }}{% endif %} {{ card.value }} {{ card.label }} {% endfor %} {{ icons::chevron_right("h-5 w-5") }} {% endif %} Data View all data → {{ icons::chevron_left("h-5 w-5") }} {{ icons::beaker("h-6 w-6 text-accent") }} {{ stats.brews }} Brews {{ icons::coffee_bean("h-6 w-6 text-accent") }} {{ stats.roasts }} Roasts {{ icons::fire("h-6 w-6 text-accent") }} {{ stats.roasters }} Roasters {{ icons::bag("h-6 w-6 text-accent") }} {{ stats.bags }} Bags {{ icons::cup("h-6 w-6 text-accent") }} {{ stats.cups }} Cups {{ icons::location("h-6 w-6 text-accent") }} {{ stats.cafes }} Cafes {{ icons::chevron_right("h-5 w-5") }} {% endblock %}
{{ event.title }}{% if let Some(sub) = event.subtitle %} ยท {{ sub }}{% endif %}