Fix dtext preview button to use event delegation.

Fixes the dtext preview button and dtext expandable to work with
dynamically loaded dtext forms.
This commit is contained in:
evazion
2018-09-26 19:49:56 -05:00
parent 6aecbf4a7e
commit a5438aaf37
3 changed files with 5 additions and 10 deletions

View File

@@ -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)

View File

@@ -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);
});
}

View File

@@ -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);
}
});
}