atr/templates/index-committer.html (158 lines of code) (raw):
{% extends "layouts/base.html" %}
{% block title %}
Select a release ~ ATR
{% endblock title %}
{% block stylesheets %}
{{ super() }}
<style>
.page-card {
min-width: 18rem;
min-height: 105px;
}
.page-version {
border-bottom: 1px solid #aaaaaa;
padding-bottom: 1rem;
}
.page-logo {
max-height: 72px;
background-color: #ffffff;
padding-left: 0.5rem;
}
</style>
{% endblock stylesheets %}
{% block content %}
<h1>Select a release</h1>
<p>
Welcome to the <strong>Apache Trusted Release</strong> (ATR) platform, designed to assist you through the process of releasing a new version of an Apache software project. Get started by selecting a release below.
</p>
{% if all_projects %}
<nav class="card p-3 mb-4">
<ul class="list-unstyled row row-cols-1 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 g-2 mb-0">
{% for item in all_projects %}
{% set project = item.project %}
{% set display_name_cleaned = project.display_name %}
{% if display_name_cleaned and display_name_cleaned.lower().endswith(" (incubating)") %}
{% set display_name_cleaned = display_name_cleaned[:-13] %}
{% endif %}
{% set toc_name = display_name_cleaned %}
{% if toc_name and toc_name.startswith("Apache ") %}
{% set toc_name = toc_name[7:] %}
{% endif %}
{% set project_id = project.name|slugify %}
<li class="col">
<a href="#project-{{ project_id }}"
class="text-decoration-none page-semibold">{{ toc_name }}</a>
</li>
{% endfor %}
</ul>
</nav>
{% for item in all_projects %}
{% set project = item.project %}
{% set active_releases = item.active_releases %}
{% set completed_releases = item.completed_releases %}
{% set project_id = project.name|slugify %}
{% set display_name_cleaned = project.display_name %}
{% if display_name_cleaned and display_name_cleaned.lower().endswith(" (incubating)") %}
{% set display_name_cleaned = display_name_cleaned[:-13] %}
{% endif %}
<div class="mb-5" id="project-{{ project_id }}">
<h2 class="border-bottom border-secondary pb-2 mb-3">
{{ display_name_cleaned }}
{% if project.is_podling or project.name.startswith("incubator-") %}
<span class="text-muted fw-normal fs-5">(Incubating)</span>
<img src="{{ url_for('static', filename='svg/apache_incubator.svg') }}"
alt=""
class="float-end ms-3 page-logo"
height="24" />
{% elif project.super_project_name %}
<img src="https://www.apache.org/logos/res/{{ project.super_project_name }}/default.png"
alt=""
class="float-end ms-3 page-logo"
height="24" />
{% else %}
<img src="https://www.apache.org/logos/res/{{ project.name }}/default.png"
alt=""
class="float-end ms-3 page-logo"
height="24" />
{% endif %}
</h2>
<p class="mb-3">
<a href="{{ as_url(routes.projects.view, name=project.name) }}"
class="text-decoration-none me-2">About this project</a>
<span class="text-muted me-2">/</span>
{% if project.super_project_name %}
<a href="{{ as_url(routes.projects.view, name=project.super_project_name) }}"
class="text-decoration-none me-2">View super-project</a>
{% else %}
<a href="{{ as_url(routes.projects.add_project, project_name=project.name) }}"
class="text-decoration-none me-2">Create a sub-project</a>
{% endif %}
{% if completed_releases %}
<span class="text-muted me-2">/</span>
<a href="{{ as_url(routes.release.finished, project_name=project.name) }}"
class="text-decoration-none">Finished releases</a>
{% endif %}
</p>
<div class="d-flex flex-wrap gap-3">
{% for release in active_releases %}
{% set current_phase_index = phase_index_map.get(release.phase, -1) %}
<a href="{{ release_as_url(release) }}" class="text-decoration-none">
<div class="card h-100 shadow-sm atr-cursor-pointer page-card">
<div class="card-body text-center d-flex flex-column justify-content-center">
<div class="fw-semibold mb-3 fs-4 page-version">{{ release.version }}</div>
<div class="atr-phase-themed mb-2">
{# set phase_symbols = ["1.", "2.", "3."] #}
{% set phase_symbols = ["①", "②", "③"] %}
{% set phase_labels = ["Compose", "Vote", "Finish"] %}
{% if current_phase_index == 0 %}
<strong class="atr-phase-one atr-phase-symbol">{{ phase_symbols[0] }}</strong>
{% else %}
<span class="atr-phase-symbol-other">{{ phase_symbols[0] }}</span>
{% endif %}
<span class="atr-phase-arrow">→</span>
{% if current_phase_index == 1 %}
<strong class="atr-phase-two atr-phase-symbol">{{ phase_symbols[1] }}</strong>
{% else %}
<span class="atr-phase-symbol-other">{{ phase_symbols[1] }}</span>
{% endif %}
<span class="atr-phase-arrow">→</span>
{% if current_phase_index == 2 %}
<strong class="atr-phase-three atr-phase-symbol">{{ phase_symbols[2] }}</strong>
{% else %}
<span class="atr-phase-symbol-other">{{ phase_symbols[2] }}</span>
{% endif %}
</div>
<div class="atr-phase-themed">
{% if current_phase_index == 0 %}
<span class="atr-phase-one atr-phase-label">{{ phase_labels[0] }}</span>
{% elif current_phase_index == 1 %}
<span class="atr-phase-two atr-phase-label">{{ phase_labels[1] }}</span>
{% elif current_phase_index == 2 %}
<span class="atr-phase-three atr-phase-label">{{ phase_labels[2] }}</span>
{% endif %}
</div>
</div>
</div>
</a>
{% endfor %}
<a href="{{ as_url(routes.start.selected, project_name=project.name) }}"
title="Start a new {{ project.display_name }} release"
class="text-decoration-none">
<div class="card h-100 shadow-sm atr-cursor-pointer page-card">
<div class="card-body d-flex justify-content-center align-items-center text-center text-secondary">
<div>
<i class="bi bi-plus me-2"></i>
</div>
<div>Start a new release</div>
</div>
</div>
</a>
</div>
</div>
{% endfor %}
{% else %}
<div class="alert alert-info" role="alert">
You are not currently listed as a participant in any projects known to ATR. You may need to add a project or check your committee memberships.
</div>
{% endif %}
{% endblock content %}