index.html

 1{% extends "base.html" %}
 2
 3{% block title %}Projects — td{% endblock %}
 4
 5{% block content %}
 6<h1>Projects</h1>
 7
 8{% if projects.is_empty() %}
 9<article class="card align-center">
10  <h2>No projects yet</h2>
11  <p class="text-light">Run <code>td project init &lt;name&gt;</code> to create one.</p>
12</article>
13{% else %}
14<div class="container">
15  <div class="row">
16    {% for p in projects %}
17    <article class="card col-4">
18      {% match p %}
19      {% when ProjectCard::Ok { name, open, in_progress, closed, total } %}
20      <header>
21        <h2><a href="/projects/{{ name }}">{{ name }}</a></h2>
22      </header>
23      <div class="hstack gap-2">
24        <span class="badge">{{ open }} open</span>
25        <span class="badge secondary">{{ in_progress }} in progress</span>
26        <span class="badge success">{{ closed }} closed</span>
27      </div>
28      {% if *total > 0 %}
29      <progress value="{{ total - open - in_progress }}" max="{{ total }}" class="mt-2" aria-label="{{ closed }} of {{ total }} tasks closed in {{ name }}"></progress>
30      {% endif %}
31      {% when ProjectCard::Err { name, error } %}
32      <header class="hstack justify-between items-center">
33        <h2>{{ name }}</h2>
34        <span class="badge danger">error</span>
35      </header>
36      <p class="text-light">{{ error }}</p>
37      {% endmatch %}
38    </article>
39    {% endfor %}
40  </div>
41</div>
42{% endif %}
43{% endblock %}