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 %} +
+ +
+ {% endif %} +{% endblock %} diff --git a/wagtail/snippets/templates/wagtailsnippets/snippets/edit.html b/wagtail/snippets/templates/wagtailsnippets/snippets/edit.html index 8273deb6ea..9e3d7bc0d0 100644 --- a/wagtail/snippets/templates/wagtailsnippets/snippets/edit.html +++ b/wagtail/snippets/templates/wagtailsnippets/snippets/edit.html @@ -3,14 +3,7 @@ {% block titletag %}{% blocktrans with snippet_type_name=model_opts.verbose_name %}Editing {{ snippet_type_name }} - {{ instance }}{% endblocktrans %}{% endblock %} {% block content %} {% trans "Editing" as editing_str %} - {% include "wagtailadmin/shared/header_with_locale_selector.html" with title=editing_str subtitle=instance icon="snippet" tabbed=1 merged=1 %} - - {% if latest_log_entry %} - - {% trans "Last updated" %} - {% include "wagtailadmin/shared/last_updated.html" with last_updated=latest_log_entry.timestamp time_prefix="at" %} - - History - {% endif %} + {% include "wagtailsnippets/snippets/_header_with_history.html" with title=editing_str subtitle=instance icon="snippet" tabbed=1 merged=1 %}
@@ -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)