This is an automated email from the ASF dual-hosted git repository. sbp pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tooling-atr-experiments.git
The following commit(s) were added to refs/heads/main by this push: new 660ffc0 Improve titles, headers, and form style 660ffc0 is described below commit 660ffc0142473eda95fa198450508de5bd692084 Author: Sean B. Palmer <s...@miscoranda.com> AuthorDate: Mon Feb 17 19:08:30 2025 +0200 Improve titles, headers, and form style --- atr/static/css/atr.css | 46 ++- atr/templates/add-release-candidate.html | 136 +++++---- atr/templates/data-browser.html | 4 +- atr/templates/includes/sidebar.html | 6 +- atr/templates/index.html | 7 +- atr/templates/layouts/base.html | 2 + atr/templates/pages.html | 4 +- atr/templates/pmc-directory.html | 100 +++++-- atr/templates/release-signature-verify.html | 4 +- atr/templates/update-pmcs.html | 95 ++++--- atr/templates/user-keys-add.html | 421 ++++++++++++++-------------- atr/templates/user-uploads.html | 4 +- 12 files changed, 494 insertions(+), 335 deletions(-) diff --git a/atr/static/css/atr.css b/atr/static/css/atr.css index baa1218..671dab5 100644 --- a/atr/static/css/atr.css +++ b/atr/static/css/atr.css @@ -44,11 +44,11 @@ h1, h2, h3 { aside h1 { font-size: 3rem; - line-height: 1.15; + line-height: 1.1; text-align: center; } -aside h1 span { +aside h1 span.rest { color: #777; } @@ -58,7 +58,15 @@ aside h1 span { } h1 { margin-bottom: 2rem; } -h2, h3, p, ul { margin-bottom: 1rem; } +h2 { border-bottom: 1px solid #d1d2d3; padding-bottom: 0.5rem; + margin-top: 2.5rem; margin-bottom: 1.5rem; } +h3, p, ul { margin-bottom: 1rem; } + +ul { padding-left: 1rem; } + +label { font-weight: 500; border-bottom: 1px dashed #d1d2d3; padding-bottom: 0.5rem; } + +form { background-color: #ffe; border: 1px solid #ddb; padding: 1rem; border-radius: 0.5rem; } footer { padding: 2rem; @@ -66,8 +74,40 @@ footer { font-size: 15px; margin: 2rem; color: #333; + font-variation-settings: "opsz" 14; + border-radius: 0.5rem; } +footer a { color: #333; font-weight: 425; } +footer a:visited { color: #333; font-weight: 425; } + +button { + margin-top: 1rem; + padding: 0.5rem 1rem; + background: #036; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + font-weight: 500; + } + + button:hover { + background: #047; + } + + + input, + textarea { + font-family: monospace; + padding: 0.5rem; + } + + textarea { + width: 100%; + min-height: 200px; + } + .wrapper { min-height: 100vh; display: flex; diff --git a/atr/templates/add-release-candidate.html b/atr/templates/add-release-candidate.html index c8d2d34..c3f3497 100644 --- a/atr/templates/add-release-candidate.html +++ b/atr/templates/add-release-candidate.html @@ -1,7 +1,7 @@ {% extends "layouts/base.html" %} {% block title %} - ATR | Add Release Candidate + Add Release Candidate ~ ATR {% endblock title %} {% block description %} @@ -11,18 +11,27 @@ {% block stylesheets %} {{ super() }} <style> - .form-group { - margin-bottom: 1rem; + .form-table { + width: 100%; + border-collapse: separate; + border-spacing: 0 1rem; } - .form-group label { - display: block; - margin-bottom: 0.5rem; + .form-table th { + width: 200px; + text-align: right; + padding-right: 1rem; + vertical-align: top; + font-weight: 500; } - .error-message { - color: #dc3545; - margin-top: 0.25rem; + .form-table td { + vertical-align: top; + } + + .form-table label { + border-bottom: none; + padding-bottom: 0; } select, @@ -31,13 +40,20 @@ margin-bottom: 0.5rem; } - small { + .help-text { color: #666; + font-size: 0.9em; + display: block; + margin-top: 0.25rem; + } + + .error-message { + color: #dc3545; + margin-top: 0.25rem; } button { margin-top: 1rem; - padding: 0.5rem 1rem; } button:disabled { @@ -48,63 +64,87 @@ {% endblock stylesheets %} {% block content %} - <h1>Add Release Candidate</h1> + <h1>Add release candidate</h1> <p class="intro">On this page, you can add a release candidate to the database.</p> <div class="user-info"> + <h2>Your account information</h2> <p> Welcome, <strong>{{ asf_id }}</strong>! You are authenticated as an ASF committer. </p> {% if pmc_memberships %} - <h3>Your PMC Memberships:</h3> + <h3>PMC memberships</h3> <ul> {% for pmc in pmc_memberships %}<li>{{ pmc }}</li>{% endfor %} </ul> {% endif %} {% if committer_projects %} - <h3>Your Committer Access:</h3> + <h3>Committer access</h3> <ul> {% for project in committer_projects %}<li>{{ project }}</li>{% endfor %} </ul> {% endif %} </div> + <h2>Select files</h2> + <form method="post" enctype="multipart/form-data"> - <div class="form-group"> - <label for="project_name">Project:</label> - <select id="project_name" name="project_name" required> - <option value="">Select a project...</option> - {% for pmc in pmc_memberships %}<option value="{{ pmc }}">{{ pmc }}</option>{% endfor %} - </select> - {% if not pmc_memberships %} - <p class="error-message">You must be a PMC member to submit a release candidate.</p> - {% endif %} - </div> - - <div class="form-group"> - <label for="release_artifact">Release Candidate Archive:</label> - <input type="file" - id="release_artifact" - name="release_artifact" - required - accept="application/gzip,application/x-gzip,application/x-tar,application/zip,application/java-archive,.tar.gz,.tgz,.zip,.jar" - aria-describedby="artifact-help" /> - <span id="artifact-help">Upload the release candidate archive (tar.gz, zip, or jar)</span> - </div> - - <div class="form-group"> - <label for="release_signature">Detached GPG Signature:</label> - <input type="file" - id="release_signature" - name="release_signature" - required - accept="application/pgp-signature,.asc" - aria-describedby="signature-help" /> - <span id="signature-help">Upload the detached GPG signature (.asc) file for the release candidate</span> - </div> - - <button type="submit" {% if not pmc_memberships %}disabled{% endif %}>Submit Release Candidate</button> + <table class="form-table"> + <tbody> + <tr> + <th> + <label for="project_name">Project:</label> + </th> + <td> + <select id="project_name" name="project_name" required> + <option value="">Select a project...</option> + {% for pmc in pmc_memberships %}<option value="{{ pmc }}">{{ pmc }}</option>{% endfor %} + </select> + {% if not pmc_memberships %} + <p class="error-message">You must be a PMC member to submit a release candidate.</p> + {% endif %} + </td> + </tr> + + <tr> + <th> + <label for="release_artifact">Release Candidate Archive:</label> + </th> + <td> + <input type="file" + id="release_artifact" + name="release_artifact" + required + accept="application/gzip,application/x-gzip,application/x-tar,application/zip,application/java-archive,.tar.gz,.tgz,.zip,.jar" + aria-describedby="artifact-help" /> + <span id="artifact-help" class="help-text">Upload the release candidate archive (tar.gz, zip, or jar)</span> + </td> + </tr> + + <tr> + <th> + <label for="release_signature">Detached GPG Signature:</label> + </th> + <td> + <input type="file" + id="release_signature" + name="release_signature" + required + accept="application/pgp-signature,.asc" + aria-describedby="signature-help" /> + <span id="signature-help" class="help-text">Upload the detached GPG signature (.asc) file for the release candidate</span> + </td> + </tr> + + <tr> + <td></td> + <td> + <button type="submit" {% if not pmc_memberships %}disabled{% endif %}>Submit Release Candidate</button> + </td> + </tr> + </tbody> + </table> </form> {% endblock content %} diff --git a/atr/templates/data-browser.html b/atr/templates/data-browser.html index d801071..7643704 100644 --- a/atr/templates/data-browser.html +++ b/atr/templates/data-browser.html @@ -1,7 +1,7 @@ {% extends "layouts/base.html" %} {% block title %} - ATR | Data Browser + Data browser ~ ATR {% endblock title %} {% block description %} @@ -65,7 +65,7 @@ {% endblock stylesheets %} {% block content %} - <h1>Data Browser</h1> + <h1>Data browser</h1> <p class="intro">Browse all records in the database.</p> <div class="model-nav"> diff --git a/atr/templates/includes/sidebar.html b/atr/templates/includes/sidebar.html index 6a230d1..c13a88f 100644 --- a/atr/templates/includes/sidebar.html +++ b/atr/templates/includes/sidebar.html @@ -2,11 +2,11 @@ <div class="sidebar-header"> <a href="{{ url_for('root') }}" class="site-title"> <h1> - A<span>pache</span> + <span class="apache">A<span class="rest">pache</span></span> <br /> - T<span>rusted</span> + <span class="trusted">T<span class="rest">rusted</span></span> <br /> - R<span>elease</span> + <span class="release">R<span class="rest">elease</span></span> </h1> </a> </div> diff --git a/atr/templates/index.html b/atr/templates/index.html index f78df3c..1cd058b 100644 --- a/atr/templates/index.html +++ b/atr/templates/index.html @@ -1,9 +1,12 @@ {% extends "layouts/base.html" %} {% block title %} - Apache Trusted Release Platform + Apache Trusted Release {% endblock title %} {% block content %} - <h1>Apache Trusted Releases</h1> + <h1>Apache Trusted Release</h1> + <p> + Welcome to the Apache Trusted Release (ATR) platform. This system is used to manage the release of Apache projects. + </p> {% endblock content %} diff --git a/atr/templates/layouts/base.html b/atr/templates/layouts/base.html index 87880cc..6d4dd6e 100644 --- a/atr/templates/layouts/base.html +++ b/atr/templates/layouts/base.html @@ -15,6 +15,8 @@ <link rel="stylesheet" href="{{ url_for('static', filename='css/atr.css') }}" /> {% endblock stylesheets %} + {% block head_extra %} + {% endblock head_extra %} </head> <body class="{%- block body_class -%}{%- endblock body_class -%}"> <div class="wrapper"> diff --git a/atr/templates/pages.html b/atr/templates/pages.html index c684377..787462a 100644 --- a/atr/templates/pages.html +++ b/atr/templates/pages.html @@ -1,7 +1,7 @@ {% extends "layouts/base.html" %} {% block title %} - ATR | Pages + Pages ~ ATR {% endblock title %} {% block description %} List of all pages and endpoints in ATR. @@ -72,7 +72,7 @@ {% endblock stylesheets %} {% block content %} - <h1>ATR Pages</h1> + <h1>Pages</h1> <p class="intro">A complete list of all pages and endpoints available in ATR.</p> <div class="endpoint-list"> diff --git a/atr/templates/pmc-directory.html b/atr/templates/pmc-directory.html index 14c6587..5aa1249 100644 --- a/atr/templates/pmc-directory.html +++ b/atr/templates/pmc-directory.html @@ -1,37 +1,95 @@ {% extends "layouts/base.html" %} {% block title %} - ATR | PMC Directory + Project Management Committees ~ ATR {% endblock title %} + {% block description %} List of all PMCs and their latest releases. {% endblock description %} +{% block head_extra %} + <style> + .pmc-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 1.5rem; + margin: 2rem 0; + } + + .pmc-card { + background: white; + border: 1px solid #e0e0e0; + border-radius: 8px; + padding: 1.5rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); + transition: transform 0.2s ease, box-shadow 0.2s ease; + } + + .pmc-card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + } + + .pmc-name { + font-size: 1.5rem; + font-weight: 500; + color: #333; + margin-bottom: 1rem; + } + + .pmc-stats { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); + gap: 1rem; + } + + .stat-item { + background: #f8f9fa; + padding: 0.75rem; + border-radius: 6px; + text-align: center; + } + + .stat-label { + display: block; + color: #666; + font-size: 0.9rem; + margin-bottom: 0.25rem; + } + + .stat-value { + display: block; + font-weight: 500; + font-size: 1.25rem; + color: #333; + } + </style> +{% endblock head_extra %} + {% block content %} - <h1>Directory of PMCs</h1> - <p class="intro"> - Welcome to the Apache Trusted Release platform. Below are the current Apache PMCs and their releases: - </p> + <h1>Project Management Committees</h1> + <p class="intro">Current Apache PMCs and their releases:</p> - <ul class="pmc-list"> + <div class="pmc-grid"> {% for pmc in pmcs %} - <li class="pmc-item"> + <div class="pmc-card"> <div class="pmc-name">{{ pmc.project_name }}</div> <div class="pmc-stats"> - <span class="stat-item"> - <span>PMC Members:</span> - <strong>{{ pmc.pmc_members|length }}</strong> - </span> - <span class="stat-item"> - <span>Committers:</span> - <strong>{{ pmc.committers|length }}</strong> - </span> - <span class="stat-item"> - <span>Release Managers:</span> - <strong>{{ pmc.release_managers|length }}</strong> - </span> + <div class="stat-item"> + <span class="stat-label">PMC Members</span> + <span class="stat-value">{{ pmc.pmc_members|length }}</span> + </div> + <div class="stat-item"> + <span class="stat-label">Committers</span> + <span class="stat-value">{{ pmc.committers|length }}</span> + </div> + <div class="stat-item"> + <span class="stat-label">Release Managers</span> + <span class="stat-value">{{ pmc.release_managers|length }}</span> + </div> </div> - </li> + </div> {% endfor %} - </ul> + </div> {% endblock content %} diff --git a/atr/templates/release-signature-verify.html b/atr/templates/release-signature-verify.html index 2b4d14f..6ce2fc3 100644 --- a/atr/templates/release-signature-verify.html +++ b/atr/templates/release-signature-verify.html @@ -1,7 +1,7 @@ {% extends "layouts/base.html" %} {% block title %} - ATR | Verify Release Signatures + Verify release signatures ~ ATR {% endblock title %} {% block description %} @@ -107,7 +107,7 @@ {% endblock stylesheets %} {% block content %} - <h1>Verify Release Signatures</h1> + <h1>Verify release signatures</h1> <div class="release-info"> <h2>{{ release.pmc.project_name }}</h2> diff --git a/atr/templates/update-pmcs.html b/atr/templates/update-pmcs.html index fa509a2..044e2a9 100644 --- a/atr/templates/update-pmcs.html +++ b/atr/templates/update-pmcs.html @@ -1,34 +1,61 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width,initial-scale=1.0" /> - <meta name="description" content="Update PMCs" /> - <title>ATR | Update PMCs</title> - <link rel="stylesheet" href="{{ url_for('static', filename='root.css') }}" /> - <style> - .form-group { - margin-bottom: 1rem; - } - - button { - margin-top: 1rem; - padding: 0.5rem 1rem; - } - </style> - </head> - <body> - <h1>Update PMCs</h1> - <p class="intro">This page allows you to update the PMC information in the database from committee-info.json.</p> - - <div class="warning"> - <p> - <strong>Note:</strong> This operation will update all PMC information, including member lists and release manager assignments. - </p> - </div> - - <form method="post"> - <button type="submit">Update PMCs</button> - </form> - </body> -</html> +{% extends "layouts/base.html" %} + +{% block title %} + Update PMCs ~ ATR +{% endblock title %} + +{% block description %} + Update PMCs from remote, authoritative committee-info.json. +{% endblock description %} + +{% block stylesheets %} + {{ super() }} + <style> + .form-group { + margin-bottom: 1rem; + } + + button { + margin-top: 1rem; + padding: 0.5rem 1rem; + background: #036; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + font-weight: 500; + } + + button:hover { + background: #047; + } + + .warning { + margin: 1.5rem 0; + padding: 1rem; + background: #fff3cd; + border: 1px solid #ffeeba; + border-radius: 4px; + color: #856404; + } + + .warning strong { + color: #533f03; + } + </style> +{% endblock stylesheets %} + +{% block content %} + <h1>Update PMCs</h1> + <p class="intro">This page allows you to update the PMC information in the database from committee-info.json.</p> + + <div class="warning"> + <p> + <strong>Note:</strong> This operation will update all PMC information, including member lists and release manager assignments. + </p> + </div> + + <form method="post"> + <button type="submit">Update PMCs</button> + </form> +{% endblock content %} diff --git a/atr/templates/user-keys-add.html b/atr/templates/user-keys-add.html index af8ce40..7db121f 100644 --- a/atr/templates/user-keys-add.html +++ b/atr/templates/user-keys-add.html @@ -1,222 +1,211 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width,initial-scale=1.0" /> - <meta name="description" content="Add a GPG public key to your account." /> - <title>ATR | Add GPG Key</title> - <link rel="stylesheet" href="{{ url_for('static', filename='root.css') }}" /> - <style> - .form-group { - margin-bottom: 1rem; - } - - .form-group label { - display: block; - margin-bottom: 0.5rem; - } - - .error-message { - color: #dc3545; - margin-top: 0.25rem; - } - - input, - textarea { - font-family: monospace; - padding: 0.5rem; - } - - textarea { - width: 100%; - min-height: 200px; - } - - .key-info { - margin-top: 1rem; - padding: 1rem; - background: #f8f9fa; - border-radius: 4px; - } - - .key-info h3 { - margin-top: 0; - } - - .key-info dl { - margin: 0; - display: grid; - grid-template-columns: auto 1fr; - gap: 0.5rem 1rem; - } - - .key-info dt { - font-weight: bold; - } - - .key-info dd { - margin: 0; - } - - button { - margin-top: 1rem; - padding: 0.5rem 1rem; - } - - .navigation { - margin-top: 2rem; - } - - .success-message { - color: #28a745; - margin: 1rem 0; - padding: 1rem; - background: #d4edda; - border-radius: 4px; - } - - .existing-keys { - margin: 2rem 0; - padding: 1rem; - background: #f8f9fa; - border-radius: 4px; - } - - .keys-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - gap: 1rem; - margin-top: 1rem; - } - - .key-card { - padding: 1rem; - background: white; - border: 1px solid #dee2e6; - border-radius: 4px; - } - - .key-card h3 { - margin-top: 0; - margin-bottom: 1rem; - } - - .delete-key-form { - margin-top: 1rem; - } - - .delete-button { - background: #dc3545; - color: white; - border: none; - padding: 0.5rem 1rem; - border-radius: 4px; - cursor: pointer; - } - - .delete-button:hover { - background: #c82333; - } - </style> - </head> - <body> - <h1>Add GPG Public Key</h1> - <p class="intro">Add your GPG public key to use for signing release artifacts.</p> - - <div class="user-info"> - <p> - Welcome, <strong>{{ asf_id }}</strong>! You are authenticated as an ASF committer. - </p> +{% extends "layouts/base.html" %} + +{% block title %} + Add signing key ~ ATR +{% endblock title %} + +{% block description %} + Add a GPG public key to your account. +{% endblock description %} + +{% block stylesheets %} + {{ super() }} + <style> + .form-group { + margin-bottom: 1rem; + } + + .form-group label { + display: block; + margin-bottom: 0.5rem; + } + + .error-message { + color: #dc3545; + margin-top: 0.25rem; + } + + .key-info { + margin-top: 1rem; + padding: 1rem; + background: #f8f9fa; + border-radius: 4px; + } + + .key-info h3 { + margin-top: 0; + } + + .key-info dl { + margin: 0; + display: grid; + grid-template-columns: auto 1fr; + gap: 0.5rem 1rem; + } + + .key-info dt { + font-weight: bold; + } + + .key-info dd { + margin: 0; + } + + .navigation { + margin-top: 2rem; + } + + .success-message { + color: #28a745; + margin: 1rem 0; + padding: 1rem; + background: #d4edda; + border-radius: 4px; + } + + .existing-keys { + margin: 2rem 0; + padding: 1rem; + background: #f8f9fa; + border-radius: 4px; + } + + .keys-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 1rem; + margin-top: 1rem; + } + + .key-card { + padding: 1rem; + background: white; + border: 1px solid #dee2e6; + border-radius: 4px; + } + + .key-card h3 { + margin-top: 0; + margin-bottom: 1rem; + } + + .delete-key-form { + margin-top: 1rem; + } + + .delete-button { + background: #dc3545; + color: white; + border: none; + padding: 0.5rem 1rem; + border-radius: 4px; + cursor: pointer; + } + + .delete-button:hover { + background: #c82333; + } + </style> +{% endblock stylesheets %} + +{% block content %} + <h1>Add signing key</h1> + <p class="intro">Add your GPG public key to use for signing release artifacts.</p> + + <div class="user-info"> + <p> + Welcome, <strong>{{ asf_id }}</strong>! You are authenticated as an ASF committer. + </p> + </div> + + {% if key_info %} + <h2>Key results</h2> + <div class="key-info"> + <h3>Success: Added Key</h3> + <dl> + <dt>Key ID</dt> + <dd> + {{ key_info.key_id }} + </dd> + <dt>Fingerprint</dt> + <dd> + {{ key_info.fingerprint }} + </dd> + <dt>User ID</dt> + <dd> + {{ key_info.user_id }} + </dd> + <dt>Created</dt> + <dd> + {{ key_info.creation_date }} + </dd> + <dt>Expires</dt> + <dd> + {{ key_info.expiration_date or 'Never' }} + </dd> + <dt>Key Data</dt> + <dd> + <pre>{{ key_info.data }}</pre> + </dd> + </dl> </div> + {% endif %} - {% if key_info %} - <div class="key-info"> - <h3>Success: Added Key</h3> - <dl> - <dt>Key ID</dt> - <dd> - {{ key_info.key_id }} - </dd> - <dt>Fingerprint</dt> - <dd> - {{ key_info.fingerprint }} - </dd> - <dt>User ID</dt> - <dd> - {{ key_info.user_id }} - </dd> - <dt>Created</dt> - <dd> - {{ key_info.creation_date }} - </dd> - <dt>Expires</dt> - <dd> - {{ key_info.expiration_date or 'Never' }} - </dd> - <dt>Key Data</dt> - <dd> - <pre>{{ key_info.data }}</pre> - </dd> - </dl> - </div> - {% endif %} - - {% if error %} - <div class="error-message"> - <h2>Error: Did Not Add Key</h2> - <p>{{ error }}</p> - </div> - {% endif %} + {% if error %} + <div class="error-message"> + <h2>Error: Did Not Add Key</h2> + <p>{{ error }}</p> + </div> + {% endif %} - {% if success %} - <div class="success-message"> - <h2>Success</h2> - <p>{{ success }}</p> - </div> - {% endif %} - - {% if user_keys %} - <div class="existing-keys"> - <h2>Your Existing Keys</h2> - <div class="keys-grid"> - {% for key in user_keys %} - <div class="key-card"> - <h3>Key Details</h3> - <dl> - <dt>Key Type</dt> - <dd> - {{ key.key_type }} - </dd> - <dt>Expires</dt> - <dd> - {{ key.expiration.strftime("%Y-%m-%d %H:%M:%S") if key.expiration else 'Never' }} - </dd> - </dl> - </div> - {% endfor %} - </div> - </div> - {% endif %} - - <form method="post"> - <div class="form-group"> - <label for="public_key">Public Key:</label> - <textarea id="public_key" - name="public_key" - required - placeholder="Paste your GPG public key here (in ASCII-armored format)" - aria-describedby="key-help"></textarea> - <small id="key-help"> - Your public key should be in ASCII-armored format, starting with "-----BEGIN PGP PUBLIC KEY BLOCK-----" - </small> + {% if success %} + <div class="success-message"> + <h2>Success</h2> + <p>{{ success }}</p> + </div> + {% endif %} + + {% if user_keys %} + <div class="existing-keys"> + <h2>Your Existing Keys</h2> + <div class="keys-grid"> + {% for key in user_keys %} + <div class="key-card"> + <h3>Key Details</h3> + <dl> + <dt>Key Type</dt> + <dd> + {{ key.key_type }} + </dd> + <dt>Expires</dt> + <dd> + {{ key.expiration.strftime("%Y-%m-%d %H:%M:%S") if key.expiration else 'Never' }} + </dd> + </dl> + </div> + {% endfor %} </div> + </div> + {% endif %} + + <form method="post"> + <div class="form-group"> + <label for="public_key">Public Key:</label> + <textarea id="public_key" + name="public_key" + required + placeholder="Paste your GPG public key here (in ASCII-armored format)" + aria-describedby="key-help"></textarea> + <small id="key-help"> + Your public key should be in ASCII-armored format, starting with "-----BEGIN PGP PUBLIC KEY BLOCK-----" + </small> + </div> - <button type="submit">Add Key</button> - </form> + <button type="submit">Add Key</button> + </form> - <div class="navigation"> - <a href="{{ url_for('root_user_uploads') }}">Back to Your Uploads</a> - <a href="{{ url_for('root_pages') }}">Return to Main Page</a> - </div> - </body> -</html> + <div class="navigation"> + <a href="{{ url_for('root_user_uploads') }}">Back to Your Uploads</a> + <a href="{{ url_for('root_pages') }}">Return to Main Page</a> + </div> +{% endblock content %} diff --git a/atr/templates/user-uploads.html b/atr/templates/user-uploads.html index ed36f60..1c2366a 100644 --- a/atr/templates/user-uploads.html +++ b/atr/templates/user-uploads.html @@ -1,7 +1,7 @@ {% extends "layouts/base.html" %} {% block title %} - ATR | Your Uploads + Your uploads ~ ATR {% endblock title %} {% block description %} @@ -53,7 +53,7 @@ {% endblock stylesheets %} {% block content %} - <h1>Your Uploads</h1> + <h1>Your uploads</h1> <p class="intro">Here are all the release candidates you've uploaded.</p> {% if releases %} --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tooling.apache.org For additional commands, e-mail: dev-h...@tooling.apache.org