From 0270c4c96204bf32bc840948ce7f15a0845cd642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 18 Jun 2020 20:08:49 +0200 Subject: [PATCH] Hide unsaved changes warning after undoing them This way showing the warning is consistent with warning users when they're leaving the page. --- app/assets/javascripts/markdown_editor.js | 12 +++++++++++- .../admin/legislation/draft_versions/_form.html.erb | 9 ++++++++- .../admin/legislation/draft_versions/edit.html.erb | 6 ------ spec/system/admin/legislation/draft_versions_spec.rb | 6 ++++++ 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/markdown_editor.js b/app/assets/javascripts/markdown_editor.js index 7f6c62710..d8e34719f 100644 --- a/app/assets/javascripts/markdown_editor.js +++ b/app/assets/javascripts/markdown_editor.js @@ -22,8 +22,18 @@ }); editor = $(this); editor.on("input", function() { + var textarea, warning; + + textarea = editor.find("textarea")[0]; + warning = $(this).closest(".translatable-fields").find(".warning"); + App.MarkdownEditor.refresh_preview($(this), md); - $(".legislation-draft-versions-edit .warning").show(); + + if (textarea.value === textarea.defaultValue) { + warning.hide(); + } else { + warning.show(); + } }); editor.find("textarea").on("scroll", function() { editor.find(".markdown-preview").scrollTop($(this).scrollTop()); diff --git a/app/views/admin/legislation/draft_versions/_form.html.erb b/app/views/admin/legislation/draft_versions/_form.html.erb index 678f8862b..9298990cd 100644 --- a/app/views/admin/legislation/draft_versions/_form.html.erb +++ b/app/views/admin/legislation/draft_versions/_form.html.erb @@ -1,11 +1,18 @@ <%= render "shared/globalize_locales", resource: @draft_version %> -<%= translatable_form_for [:admin, @process, @draft_version], url: url do |f| %> +<%= translatable_form_for [:admin, @process, @draft_version], url: url, + html: { data: { markdown_changes_message: I18n.t("admin.legislation.draft_versions.edit.markdown_changes_message") }} do |f| %> <%= render "shared/errors", resource: @draft_version %>
<%= f.translatable_fields do |translations_form| %> +
+ +
+
<%= translations_form.text_field :title, placeholder: t("admin.legislation.draft_versions.form.title_placeholder") %> diff --git a/app/views/admin/legislation/draft_versions/edit.html.erb b/app/views/admin/legislation/draft_versions/edit.html.erb index 537a671e0..a49b9dbd2 100644 --- a/app/views/admin/legislation/draft_versions/edit.html.erb +++ b/app/views/admin/legislation/draft_versions/edit.html.erb @@ -11,12 +11,6 @@ <%= render "admin/legislation/processes/subnav", process: @process, active: "draft_versions" %> -
-
" style="display: none;"> - <%= t("admin.legislation.draft_versions.edit.warning") %> -
-
-

<%= @draft_version.title %>

diff --git a/spec/system/admin/legislation/draft_versions_spec.rb b/spec/system/admin/legislation/draft_versions_spec.rb index a869d7a0f..05e41194c 100644 --- a/spec/system/admin/legislation/draft_versions_spec.rb +++ b/spec/system/admin/legislation/draft_versions_spec.rb @@ -102,6 +102,8 @@ describe "Admin legislation draft versions" do visit path fill_in_markdown_editor "Text", with: "Version 1b" + expect(page).to have_content "You've edited the text" + dismiss_confirm(prompt) do click_link "Proposals", match: :first end @@ -141,7 +143,11 @@ describe "Admin legislation draft versions" do expect(page).to have_css("h2", text: "Proposals") go_back + fill_in_markdown_editor "Text", with: "Version 1" + + expect(page).not_to have_content "You've edited the text" + click_link "Proposals", match: :first expect(page).to have_css("h2", text: "Proposals")