Repository: wagtail/wagtail

Issue:
UX issues on form submission page
### Issue Summary

On a form with more than just a few fields, It is unclear on the form submission page that there is further data to scroll to on the right hand side. This is because the left-right scroll bar is only available at the bottom of the page rather than at the bottom of your screen. Screenshot one below demonstrates the form submission screen (submissions blanked out for privacy reasons).

This means that if you want to view the first form submission in full, to view the fields that are off-screen you need to scroll down to the bottom, then scroll to the right, then scroll back up!

There are also some issue with the appearance of the scroll bar - the placement of "Page 1 of 3" makes it look like a pager rather than a scroll bar. This issue may be alleviated if the scroll bar is fixed at the bottom of a users screen rather than at the bottom of the page, but should be considered when the user is at the bottom of the screen. Screenshot 2, attached, demonstrated this.

### Technical details

* Wagtail version: 1.6.2.

![formsubmission1](https://cloud.githubusercontent.com/assets/19690895/21350422/1cfab80e-c6af-11e6-8738-296bce473f32.png)
![formsubmission2](https://cloud.githubusercontent.com/assets/19690895/21350428/1f96da84-c6af-11e6-9599-69a4e41e6dd5.png)



Discussion:
I got this problem.Here we can create button on table head row to scroll the table horizontally like this.


![wag_photo](https://user-images.githubusercontent.com/60008621/163707805-a864f551-6a7e-43da-8de5-998a1c541438.jpg)

can i pick up this issue ??
Yep. But remember that the delete button shows in the header also when you select a response. 

Please be sure to review the latest code though, the main branch looks different. 

Finally, I think we could get far by putting the subtitle span in a new line. I think in general that should be outside the h1 element in the header but that will be a global change. 



Resolving patch:
diff --git a/wagtail/contrib/forms/views.py b/wagtail/contrib/forms/views.py
--- a/wagtail/contrib/forms/views.py
+++ b/wagtail/contrib/forms/views.py
@@ -6,7 +6,7 @@
 from django.core.paginator import InvalidPage
 from django.shortcuts import get_object_or_404, redirect
 from django.urls import reverse
-from django.utils.translation import ngettext
+from django.utils.translation import gettext_lazy, ngettext
 from django.views.generic import ListView, TemplateView
 
 from wagtail.admin import messages
@@ -177,7 +177,7 @@ def get_context_data(self, **kwargs):
 class SubmissionsListView(SpreadsheetExportMixin, SafePaginateListView):
     """Lists submissions for the provided form page"""
 
-    template_name = "wagtailforms/index_submissions.html"
+    template_name = "wagtailforms/submissions_index.html"
     context_object_name = "submissions"
     form_page = None
     ordering = ("-submit_time",)
@@ -186,6 +186,7 @@ class SubmissionsListView(SpreadsheetExportMixin, SafePaginateListView):
         "id",
         "submit_time",
     )  # used to validate ordering in URL
+    page_title = gettext_lazy("Form data")
     select_date_form = None
 
     def dispatch(self, request, *args, **kwargs):
@@ -304,6 +305,7 @@ def get_context_data(self, **kwargs):
         data_fields = self.form_page.get_data_fields()
         data_rows = []
         context["submissions"] = submissions
+        context["page_title"] = self.page_title
         if not self.is_export:
             # Build data_rows as list of dicts containing model_id and fields
             for submission in submissions:


Test patch:
diff --git a/wagtail/contrib/forms/tests/test_views.py b/wagtail/contrib/forms/tests/test_views.py
--- a/wagtail/contrib/forms/tests/test_views.py
+++ b/wagtail/contrib/forms/tests/test_views.py
@@ -377,7 +377,7 @@ def test_list_submissions(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 2)
 
         # check display of list values within form submissions
@@ -394,7 +394,7 @@ def construct_forms_for_user(user, queryset):
 
         # An user can see form submissions without the hook
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 2)
 
         with self.register_hook(
@@ -415,7 +415,7 @@ def test_list_submissions_filtering_date_from(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 1)
 
     def test_list_submissions_filtering_date_to(self):
@@ -426,7 +426,7 @@ def test_list_submissions_filtering_date_to(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 1)
 
     def test_list_submissions_filtering_range(self):
@@ -437,7 +437,7 @@ def test_list_submissions_filtering_range(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 1)
 
     def test_list_submissions_pagination(self):
@@ -450,7 +450,7 @@ def test_list_submissions_pagination(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
 
         # Check that we got the correct page
         self.assertEqual(response.context["page_obj"].number, 2)
@@ -465,7 +465,7 @@ def test_list_submissions_pagination_invalid(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
 
         # Check that we got page one
         self.assertEqual(response.context["page_obj"].number, 1)
@@ -480,7 +480,7 @@ def test_list_submissions_pagination_out_of_range(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
 
         # Check that we got the last page
         self.assertEqual(
@@ -1082,7 +1082,7 @@ def test_list_submissions(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 2)
 
         # CustomFormPageSubmission have custom field. This field should appear in the listing
@@ -1100,7 +1100,7 @@ def test_list_submissions_filtering_date_from(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 1)
 
         # CustomFormPageSubmission have custom field. This field should appear in the listing
@@ -1117,7 +1117,7 @@ def test_list_submissions_filtering_date_to(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 1)
 
         # CustomFormPageSubmission have custom field. This field should appear in the listing
@@ -1134,7 +1134,7 @@ def test_list_submissions_filtering_range(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 1)
 
         # CustomFormPageSubmission have custom field. This field should appear in the listing
@@ -1153,7 +1153,7 @@ def test_list_submissions_pagination(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
 
         # Check that we got the correct page
         self.assertEqual(response.context["page_obj"].number, 2)
@@ -1174,7 +1174,7 @@ def test_list_submissions_pagination_invalid(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
 
         # Check that we got page one
         self.assertEqual(response.context["page_obj"].number, 1)
@@ -1189,7 +1189,7 @@ def test_list_submissions_pagination_out_of_range(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
 
         # Check that we got the last page
         self.assertEqual(
@@ -1472,7 +1472,7 @@ def test_list_submissions(self):
         )
 
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 2)
 
         # check display of list values within form submissions
@@ -1490,7 +1490,7 @@ def test_list_submissions_pagination(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
 
         # test that paginate by 50 is working, should be 3 max pages (~120 values)
         self.assertContains(response, "Page 2 of 3")
@@ -1603,7 +1603,7 @@ def test_list_submissions(self):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, "wagtailforms/index_submissions.html")
+        self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
         self.assertEqual(len(response.context["data_rows"]), 20)
 
         # check display of list values within form submissions