diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 6bc6fb25e9..cc79432f14 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -4,6 +4,7 @@ Changelog
1.9 (xx.xx.xxxx) - IN DEVELOPMENT
~~~~~~~~~~~~~~~~
+ * View live / draft links in the admin now consistently open in a new window (Marco Fucci)
1.8 (xx.xx.xxxx) - IN DEVELOPMENT
diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst
index 1ce5dae7b1..22534da66c 100644
--- a/CONTRIBUTORS.rst
+++ b/CONTRIBUTORS.rst
@@ -193,6 +193,7 @@ Contributors
* Jeffrey Chau
* Craig Loftus
* MattRijk
+* Marco Fucci
Translators
===========
diff --git a/docs/releases/1.9.rst b/docs/releases/1.9.rst
index cc27207d3d..d6034ce635 100644
--- a/docs/releases/1.9.rst
+++ b/docs/releases/1.9.rst
@@ -15,7 +15,7 @@ What's new
Minor features
~~~~~~~~~~~~~~
-
+ * View live / draft links in the admin now consistently open in a new window (Marco Fucci)
Bug fixes
diff --git a/wagtail/wagtailadmin/messages.py b/wagtail/wagtailadmin/messages.py
index 917091ea92..ca7691212f 100644
--- a/wagtail/wagtailadmin/messages.py
+++ b/wagtail/wagtailadmin/messages.py
@@ -31,5 +31,5 @@ def error(request, message, buttons=None):
return messages.error(request, render(message, buttons))
-def button(url, text):
- return url, text
+def button(url, text, new_window=False):
+ return url, text, new_window
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/home/pages_for_moderation.html b/wagtail/wagtailadmin/templates/wagtailadmin/home/pages_for_moderation.html
index 77b0bfa25b..e910c55be6 100644
--- a/wagtail/wagtailadmin/templates/wagtailadmin/home/pages_for_moderation.html
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/home/pages_for_moderation.html
@@ -40,7 +40,7 @@
{% trans 'Edit' %}
- {% trans 'Preview' %}
+ {% trans 'Preview' %}
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/home/recent_edits.html b/wagtail/wagtailadmin/templates/wagtailadmin/home/recent_edits.html
index 5e7b190a0a..2601636f1b 100644
--- a/wagtail/wagtailadmin/templates/wagtailadmin/home/recent_edits.html
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/home/recent_edits.html
@@ -27,10 +27,10 @@
|
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/shared/messages.html b/wagtail/wagtailadmin/templates/wagtailadmin/shared/messages.html
index 50c6f71cdd..a23ee3efae 100644
--- a/wagtail/wagtailadmin/templates/wagtailadmin/shared/messages.html
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/shared/messages.html
@@ -3,7 +3,7 @@
{% if buttons %}
{% for button in buttons %}
- {{ button.1 }}
+ {{ button.1 }}
{% endfor %}
{% endif %}
diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py
index 9a4a65b5af..f44a09c5fa 100644
--- a/wagtail/wagtailadmin/views/pages.py
+++ b/wagtail/wagtailadmin/views/pages.py
@@ -224,7 +224,7 @@ def create(request, content_type_app_name, content_type_model_name, parent_page_
])
else:
messages.success(request, _("Page '{0}' created and published.").format(page.get_admin_display_title()), buttons=[
- messages.button(page.url, _('View live')),
+ messages.button(page.url, _('View live'), new_window=True),
messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit'))
])
elif is_submitting:
@@ -232,8 +232,15 @@ def create(request, content_type_app_name, content_type_model_name, parent_page_
request,
_("Page '{0}' created and submitted for moderation.").format(page.get_admin_display_title()),
buttons=[
- messages.button(reverse('wagtailadmin_pages:view_draft', args=(page.id,)), _('View draft')),
- messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit'))
+ messages.button(
+ reverse('wagtailadmin_pages:view_draft', args=(page.id,)),
+ _('View draft'),
+ new_window=True
+ ),
+ messages.button(
+ reverse('wagtailadmin_pages:edit', args=(page.id,)),
+ _('Edit')
+ )
]
)
if not send_notification(page.get_latest_revision().id, 'submitted', request.user.pk):
@@ -381,7 +388,8 @@ def edit(request, page_id):
messages.success(request, message, buttons=[
messages.button(
page.url,
- _('View live')
+ _('View live'),
+ new_window=True
),
messages.button(
reverse('wagtailadmin_pages:edit', args=(page_id,)),
@@ -400,7 +408,8 @@ def edit(request, page_id):
messages.success(request, message, buttons=[
messages.button(
reverse('wagtailadmin_pages:view_draft', args=(page_id,)),
- _('View draft')
+ _('View draft'),
+ new_window=True
),
messages.button(
reverse('wagtailadmin_pages:edit', args=(page_id,)),
@@ -893,7 +902,7 @@ def approve_moderation(request, revision_id):
if request.method == 'POST':
revision.approve_moderation()
messages.success(request, _("Page '{0}' published.").format(revision.page.get_admin_display_title()), buttons=[
- messages.button(revision.page.url, _('View live')),
+ messages.button(revision.page.url, _('View live'), new_window=True),
messages.button(reverse('wagtailadmin_pages:edit', args=(revision.page.id,)), _('Edit'))
])
if not send_notification(revision.id, 'approved', request.user.pk):