Skip to content

Commit 9000661

Browse files
authored
Improve the display of dates (#6662)
1 parent be2d096 commit 9000661

File tree

9 files changed

+34
-30
lines changed

9 files changed

+34
-30
lines changed

warehouse/static/js/warehouse/controllers/localized_time_controller.js

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
*/
1414
import { Controller } from "stimulus";
1515
import distanceInWordsToNow from "date-fns/distance_in_words_to_now";
16+
import format from "date-fns/format";
1617

1718
export default class extends Controller {
1819

@@ -29,20 +30,25 @@ export default class extends Controller {
2930
connect() {
3031
const timestamp = this.element.getAttribute("datetime");
3132
let localTime = this.getLocalTimeFromTimestamp(timestamp);
33+
let isoDate = format(localTime, "YYYY-MM-DD HH:mm:ss");
3234
let startOfDay = new Date();
3335
startOfDay.setUTCHours(0, 0, 0, 0);
34-
if (this.data.get("relative") == "true" && localTime > startOfDay) {
36+
37+
let isRelative = this.data.get("relative") == "true";
38+
let showTime = this.data.get("show-time") == "true";
39+
const options = { month: "short", day: "numeric", year: "numeric" };
40+
41+
if (isRelative && localTime > startOfDay) {
3542
this.element.innerText = distanceInWordsToNow(localTime, {includeSeconds: true}) + " ago";
3643
} else {
37-
const options = { month: "short", day: "numeric", year: "numeric" };
38-
this.element.innerText = localTime.toLocaleDateString("en-US", options);
39-
}
40-
41-
if(this.element.classList.contains("tooltipped")) {
42-
const options = { hour12: false, timeZoneName: "short", second: "2-digit", minute: "2-digit", hour: "2-digit", month: "short", day: "numeric", year: "numeric" };
43-
this.element.setAttribute("aria-label", localTime.toLocaleDateString("en-US", options));
44-
this.element.setAttribute("data-original-label", localTime.toLocaleDateString("en-US", options));
44+
if (showTime) {
45+
this.element.innerText = localTime.toLocaleTimeString("en-US", options);
46+
} else {
47+
this.element.innerText = localTime.toLocaleDateString("en-US", options);
48+
}
4549
}
4650

51+
this.element.setAttribute("title", isoDate);
52+
this.element.setAttribute("aria-label", isoDate);
4753
}
4854
}

warehouse/templates/accounts/profile.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ <h1 class="author-profile__name">{{ user.name }}</h1>
3636
<p>
3737
<i class="fa fa-calendar-alt" aria-hidden="true"></i>
3838
<span class="sr-only">{% trans %}Date joined{% endtrans %}</span>
39-
&nbsp;&nbsp;{% trans start_date=user.date_joined|format_date() %}Joined on {{ start_date }}{% endtrans %}
39+
&nbsp;&nbsp;{% trans start_date=humanize(user.date_joined) %}Joined on {{ start_date }}{% endtrans %}
4040
</p>
4141
{% endif %}
4242
</div>
@@ -65,7 +65,7 @@ <h2>
6565
<a class="package-snippet" href="{{ request.route_path('packaging.project', name=project.normalized_name) }}">
6666
<h3 class="package-snippet__title">{{ project.name }}</h3>
6767
<p class="package-snippet__meta">
68-
{% trans release_date=project.releases[0].created|format_date() %}Last released on {{ release_date }}{% endtrans %}
68+
{% trans release_date=humanize(project.releases[0].created) %}Last released on {{ release_date }}{% endtrans %}
6969
</p>
7070
<p class="package-snippet__description">{{ project.releases[0].summary }}</p>
7171
</a>

warehouse/templates/base.html

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,8 @@
1212
# limitations under the License.
1313
-#}
1414

15-
{% macro humanize(timestamp) -%}
16-
<time class="-js-relative-time" datetime="{{ timestamp|format_datetime('yyyy-MM-ddTHH:mm:ssZ') }}" data-controller="localized-time" data-localized-time-relative="true">
17-
{{ timestamp|format_date()}}
18-
</time>
19-
{%- endmacro %}
20-
21-
{% macro localize(timestamp) -%}
22-
<time class="tooltipped tooltipped-s -js-relative-time" datetime="{{ timestamp|format_datetime('yyyy-MM-ddTHH:mm:ssZ') }}" data-controller="localized-time">
15+
{% macro humanize(timestamp, relative="true", time="false") -%}
16+
<time datetime="{{ timestamp|format_datetime('yyyy-MM-ddTHH:mm:ssZ') }}" data-controller="localized-time" data-localized-time-relative="{{ relative }}" data-localized-time-show-time="{{ time }}">
2317
{{ timestamp|format_date()}}
2418
</time>
2519
{%- endmacro %}

warehouse/templates/manage/account.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@
171171
{% endif %}
172172
</td>
173173
<td>
174-
<span class="table__mobile-label">{% trans %}Created on{% endtrans %}</span>
174+
<span class="table__mobile-label">{% trans %}Created{% endtrans %}</span>
175175
{{ humanize(macaroon.created) }}
176176
</td>
177177
<td>
@@ -272,7 +272,9 @@ <h2 class="sub-title">{% trans %}Account details{% endtrans %}</h2>
272272
<p class="form-group__text">{{ user.username }}</p>
273273
{% if user.date_joined %}
274274
<span class="form-group__label">{% trans %}Date Joined{% endtrans %}</span>
275-
<p class="form-group__text"> {{ user.date_joined|format_date() }}</p>
275+
<p class="form-group__text">
276+
{{ humanize(user.date_joined) }}
277+
</p>
276278
{% endif %}
277279
<p class="form-group__help-text">
278280
{% trans trimmed href=request.route_path('accounts.profile', username=user.username) %}
@@ -631,7 +633,7 @@ <h2>{% trans %}Security history{% endtrans %} <span class="badge badge--warning"
631633
<td>{{ event_summary(event) }}</td>
632634
<td>
633635
<span class="table__mobile-label">{% trans %}Date / time{% endtrans %}</span>
634-
{{ humanize(event.time) }}
636+
{{ humanize(event.time, time="true") }}
635637
</td>
636638
<td>
637639
<span class="table__mobile-label">{% trans %}IP address{% endtrans %}</span>

warehouse/templates/manage/history.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ <h2>{% trans %}Security history{% endtrans %} <span class="badge badge--warning"
9696
<td>{{ event_summary(event) }}</td>
9797
<td>
9898
<span class="table__mobile-label">{% trans %}Date / time{% endtrans %}</span>
99-
{{ humanize(event.time) }}
99+
{{ humanize(event.time, time="true") }}
100100
</td>
101101
<td>
102102
<span class="table__mobile-label">{% trans %}IP address{% endtrans %}</span>

warehouse/templates/manage/journal.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ <h2>{% trans %}Project journal{% endtrans %}</h2>
4646
</th>
4747
<td>
4848
<span class="table__mobile-label">{% trans %}Date{% endtrans %}</span>
49-
{{ journal.submitted_date|format_datetime() }}
49+
{{ humanize(journal.submitted_date, time="true") }}
5050
</td>
5151
<td>
5252
<span class="table__mobile-label">{% trans %}User{% endtrans %}</span>

warehouse/templates/manage/projects.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ <h3 class="package-snippet__title">{{ project.name }}
3333
</h3>
3434
{% if release %}
3535
<p class="package-snippet__meta">
36-
{% trans release_date=release.created|format_date() %}Last released on {{ release_date }}{% endtrans %}
36+
{% trans release_date=humanize(release.created) %}Last released on {{ release_date }}{% endtrans %}
3737
</p>
3838
<p class="package-snippet__description">
3939
{{ release.summary }}
4040
</p>
4141
{% else %}
4242
<p class="package-snippet__meta">
43-
{% trans creation_date=project.created|format_date() %}Created on {{ creation_date }}{% endtrans %}
43+
{% trans creation_date=humanize(project.created) %}Created on {{ creation_date }}{% endtrans %}
4444
</p>
4545
{% endif %}
4646
</div>

warehouse/templates/manage/release.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ <h2 class="heading-wsubtitle__heading">{% trans version=release.version %}Releas
5959
</td>
6060
<td>
6161
<span class="table__mobile-label">{% trans %}Upload date{% endtrans %}</span>
62-
{{ file.upload_time|format_date() }}
62+
{{ humanize(file.upload_time) }}
6363
</td>
6464
<td class="table__align-right">
6565
<nav class="dropdown dropdown--with-icons">

warehouse/templates/packaging/detail.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ <h1 class="package-header__name">
120120
<span>{% trans %}Latest version{% endtrans %}</span>
121121
</a>
122122
{% endif %}
123-
<p class="package-header__date">{% trans release_date=humanize(release.created) %}Last released: {{ release_date }}{% endtrans %}</p>
123+
<p class="package-header__date">
124+
{% trans release_date=humanize(release.created) %}Last released: {{ release_date }}{% endtrans %}
125+
</p>
124126
</div>
125127
</div>
126128
</div>
@@ -262,7 +264,7 @@ <h2 class="page-title split-layout">
262264
{{ hversion.version }} {% if hversion.is_prerelease %}<span class="badge badge--warning release__version-badge">{% trans %}pre-release{% endtrans %}</span>{% endif %}
263265
</p>
264266
<p class="release__version-date">
265-
{{ localize(hversion.created) }}
267+
{{ humanize(hversion.created) }}
266268
</p>
267269
</a>
268270
</div>
@@ -311,7 +313,7 @@ <h2 class="page-title">{% trans %}Download files{% endtrans %}</h2>
311313
</td>
312314
<td>
313315
<span class="table__mobile-label">{% trans %}Upload date{% endtrans %}</span>
314-
{{ localize(file.upload_time) }}
316+
{{ humanize(file.upload_time) }}
315317
</td>
316318
<td class="table__align-right">
317319
<span class="table__mobile-label table__mobile-label--hashes">{% trans %}Hashes{% endtrans %}</span>

0 commit comments

Comments
 (0)