From a5438aaf3703d43ac74a2a24dcddf07ffac8dddf Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 26 Sep 2018 19:49:56 -0500 Subject: [PATCH] Fix dtext preview button to use event delegation. Fixes the dtext preview button and dtext expandable to work with dynamically loaded dtext forms. --- app/helpers/application_helper.rb | 6 ++---- app/javascript/src/javascripts/comments.js | 1 - app/javascript/src/javascripts/dtext.js | 8 +++----- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 1632d9766..49082424c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -181,10 +181,8 @@ module ApplicationHelper render "dtext/form", options end - def dtext_preview_button(object, name, options = {}) - options[:input_id] ||= "#{object}_#{name}" - options[:preview_id] ||= "dtext-preview" - submit_tag("Preview", "data-input-id" => options[:input_id], "data-preview-id" => options[:preview_id]) + def dtext_preview_button(object, name, input_id: "#{object}_#{name}", preview_id: "dtext-preview") + tag.input value: "Preview", type: "button", class: "dtext-preview-button", "data-input-id": input_id, "data-preview-id": preview_id end def search_field(method, label: method.titleize, hint: nil, value: nil, **attributes) diff --git a/app/javascript/src/javascripts/comments.js b/app/javascript/src/javascripts/comments.js index 7038cbf0b..9d67427b7 100644 --- a/app/javascript/src/javascripts/comments.js +++ b/app/javascript/src/javascripts/comments.js @@ -11,7 +11,6 @@ Comment.initialize_all = function() { $(window).on("danbooru:index_for_post", (_event, post_id, current_comment_section) => { $("#threshold-comments-notice-for-" + post_id).hide(); - Dtext.initialize_expandables(current_comment_section); }); } diff --git a/app/javascript/src/javascripts/dtext.js b/app/javascript/src/javascripts/dtext.js index e9a633f42..59121e65b 100644 --- a/app/javascript/src/javascripts/dtext.js +++ b/app/javascript/src/javascripts/dtext.js @@ -6,12 +6,11 @@ Dtext.initialize_all = function() { } Dtext.initialize_links = function() { - $(".simple_form input[value=Preview]").on("click.danbooru", Dtext.click_button); + $(document).on("click.danbooru", ".dtext-preview-button", Dtext.click_button); } -Dtext.initialize_expandables = function($parent) { - $parent = $parent || $(document); - $parent.find(".expandable-button").on("click.danbooru", function(e) { +Dtext.initialize_expandables = function() { + $(document).on("click.danbooru", ".expandable-button", function(e) { var button = $(this); button.parent().next().fadeToggle("fast"); if (button.val() === "Show") { @@ -34,7 +33,6 @@ Dtext.call_preview = function(e, $button, $input, $preview) { }, success: function(data) { $preview.html(data).fadeIn("fast"); - Dtext.initialize_expandables($preview); } }); }