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

Reply via email to