diff --git a/client/scss/components/_header.scss b/client/scss/components/_header.scss
index 7ee668b058..cad7c1a504 100644
--- a/client/scss/components/_header.scss
+++ b/client/scss/components/_header.scss
@@ -126,6 +126,25 @@ header {
width: auto;
padding: 0;
}
+
+ .last-updated {
+ ul {
+ padding: 0;
+ }
+
+ li {
+ display: inline;
+ margin-right: 2em;
+ }
+
+ .avatar.small {
+ margin-left: 0;
+ }
+
+ a {
+ font-weight: bold;
+ }
+ }
}
@include media-breakpoint-up(sm) {
diff --git a/wagtail/admin/templates/wagtailadmin/shared/header.html b/wagtail/admin/templates/wagtailadmin/shared/header.html
index c860f90dbc..2aaaee6c84 100644
--- a/wagtail/admin/templates/wagtailadmin/shared/header.html
+++ b/wagtail/admin/templates/wagtailadmin/shared/header.html
@@ -50,4 +50,5 @@
{% endblock %}
+ {% block extra_rows %}{% endblock %}
diff --git a/wagtail/snippets/templates/wagtailsnippets/snippets/_header_with_history.html b/wagtail/snippets/templates/wagtailsnippets/snippets/_header_with_history.html
new file mode 100644
index 0000000000..bfb50700e4
--- /dev/null
+++ b/wagtail/snippets/templates/wagtailsnippets/snippets/_header_with_history.html
@@ -0,0 +1,22 @@
+{% extends "wagtailadmin/shared/header_with_locale_selector.html" %}
+{% load wagtailadmin_tags i18n %}
+
+{% block extra_rows %}
+ {% url 'wagtailsnippets:history' model_opts.app_label model_opts.model_name instance.pk|admin_urlquote as history_url %}
+
+ {% if latest_log_entry %}
+
@@ -66,5 +59,16 @@
window.wagtailConfig = window.wagtailConfig || {};
window.wagtailConfig.ACTIVE_CONTENT_LOCALE = '{{ locale.language_code|escapejs }}';
{% endif %}
+
+ $(function() {
+ $('[data-wagtail-tooltip]').tooltip({
+ animation: false,
+ title: function() {
+ return $(this).attr('data-wagtail-tooltip');
+ },
+ trigger: 'hover',
+ placement: 'bottom',
+ });
+ })
{% endblock %}
diff --git a/wagtail/snippets/tests.py b/wagtail/snippets/tests.py
index b151c7d6d4..1dd61f5fdd 100644
--- a/wagtail/snippets/tests.py
+++ b/wagtail/snippets/tests.py
@@ -531,6 +531,13 @@ class TestSnippetEditView(BaseTestSnippetEditView):
def setUp(self):
super().setUp()
self.test_snippet = Advert.objects.get(pk=1)
+ ModelLogEntry.objects.create(
+ content_type=ContentType.objects.get_for_model(Advert),
+ label="Test Advert",
+ action='wagtail.create',
+ timestamp=make_aware(datetime.datetime(2021, 9, 30, 10, 1, 0)),
+ object_id='1',
+ )
def test_get_with_limited_permissions(self):
self.user.is_superuser = False
@@ -550,6 +557,11 @@ class TestSnippetEditView(BaseTestSnippetEditView):
self.assertNotContains(response, '
Advert', html=True)
self.assertNotContains(response, '
Other', html=True)
+ # "Last updated" timestamp should be present
+ self.assertContains(response, 'data-wagtail-tooltip="Sept. 30, 2021, 10:01 a.m."')
+ # History link should be present
+ self.assertContains(response, 'href="/admin/snippets/tests/advert/history/%d/"' % self.test_snippet.pk)
+
url_finder = AdminURLFinder(self.user)
expected_url = '/admin/snippets/tests/advert/edit/%d/' % self.test_snippet.pk
self.assertEqual(url_finder.get_edit_url(self.test_snippet), expected_url)