From e31ba618d4e2449727118bbd358a079f544c1a8f Mon Sep 17 00:00:00 2001 From: guigeekz Date: Sun, 8 Mar 2020 16:04:03 +0100 Subject: [PATCH] Add submit button to the top of preferences pages (#13068) * Move submit button to the top of the edit page * Duplicate save button on long form * Fix click submit on profile spec --- app/views/admin/settings/edit.html.haml | 5 ++++- app/views/settings/preferences/appearance/show.html.haml | 5 ++++- .../settings/preferences/notifications/show.html.haml | 8 ++++---- app/views/settings/preferences/other/show.html.haml | 5 ++++- app/views/settings/profiles/show.html.haml | 5 ++++- spec/features/profile_spec.rb | 2 +- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index dc08f0141..f37775aa9 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -4,7 +4,10 @@ - content_for :page_title do = t('admin.settings.title') -= simple_form_for @admin_settings, url: admin_settings_path, html: { method: :patch } do |f| + - content_for :heading_actions do + = button_tag t('generic.save_changes'), class: 'button', form: 'edit_admin' + += simple_form_for @admin_settings, url: admin_settings_path, html: { method: :patch, id: 'edit_admin' } do |f| = render 'shared/error_messages', object: @admin_settings .fields-group diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml index d2b05513e..acddf7884 100644 --- a/app/views/settings/preferences/appearance/show.html.haml +++ b/app/views/settings/preferences/appearance/show.html.haml @@ -1,7 +1,10 @@ - content_for :page_title do = t('settings.appearance') -= simple_form_for current_user, url: settings_preferences_appearance_path, html: { method: :put } do |f| +- content_for :heading_actions do + = button_tag t('generic.save_changes'), class: 'button', form: 'edit_user' + += simple_form_for current_user, url: settings_preferences_appearance_path, html: { method: :put, id: 'edit_user' } do |f| .fields-row .fields-group.fields-row__column.fields-row__column-6 = f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, selected: I18n.locale, hint: false diff --git a/app/views/settings/preferences/notifications/show.html.haml b/app/views/settings/preferences/notifications/show.html.haml index a496be21b..d7cc1ed5d 100644 --- a/app/views/settings/preferences/notifications/show.html.haml +++ b/app/views/settings/preferences/notifications/show.html.haml @@ -1,7 +1,10 @@ - content_for :page_title do = t('settings.notifications') -= simple_form_for current_user, url: settings_preferences_notifications_path, html: { method: :put } do |f| +- content_for :heading_actions do + = button_tag t('generic.save_changes'), class: 'button', form: 'edit_notification' + += simple_form_for current_user, url: settings_preferences_notifications_path, html: { method: :put, id: 'edit_notification' } do |f| = render 'shared/error_messages', object: current_user %h4= t 'notifications.email_events' @@ -32,6 +35,3 @@ = ff.input :must_be_follower, as: :boolean, wrapper: :with_label = ff.input :must_be_following, as: :boolean, wrapper: :with_label = ff.input :must_be_following_dm, as: :boolean, wrapper: :with_label - - .actions - = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/settings/preferences/other/show.html.haml b/app/views/settings/preferences/other/show.html.haml index db7d806bc..539a70056 100644 --- a/app/views/settings/preferences/other/show.html.haml +++ b/app/views/settings/preferences/other/show.html.haml @@ -1,7 +1,10 @@ - content_for :page_title do = t('settings.preferences') -= simple_form_for current_user, url: settings_preferences_other_path, html: { method: :put } do |f| +- content_for :heading_actions do + = button_tag t('generic.save_changes'), class: 'button', form: 'edit_preferences' + += simple_form_for current_user, url: settings_preferences_other_path, html: { method: :put, id: 'edit_preferences' } do |f| = render 'shared/error_messages', object: current_user .fields-group diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml index 6929f54f3..c55ab7b90 100644 --- a/app/views/settings/profiles/show.html.haml +++ b/app/views/settings/profiles/show.html.haml @@ -1,7 +1,10 @@ - content_for :page_title do = t('settings.edit_profile') -= simple_form_for @account, url: settings_profile_path, html: { method: :put } do |f| +- content_for :heading_actions do + = button_tag t('generic.save_changes'), class: 'button', form: 'edit_profile' + += simple_form_for @account, url: settings_profile_path, html: { method: :put, id: 'edit_profile' } do |f| = render 'shared/error_messages', object: @account .fields-row diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb index 3202167ca..b6de3e9d1 100644 --- a/spec/features/profile_spec.rb +++ b/spec/features/profile_spec.rb @@ -39,7 +39,7 @@ feature 'Profile' do visit settings_profile_path fill_in 'Display name', with: 'Bob' fill_in 'Bio', with: 'Bob is silent' - click_on 'Save changes' + first('.btn[type=submit]').click is_expected.to have_content 'Changes successfully saved!' # View my own public profile and see the changes