Sha256: c6dfcb01d00d62ddbdbb1d898ef0231625f215bde6efc5e2a5c6a126d41adc60

Contents?: true

Size: 1.95 KB

Versions: 1

Compression:

Stored size: 1.95 KB

Contents

$(function() {
  $("body").on("ajax:success", ".abracadabra-form", function(e) {
    $(e.target).find(".abracadabra-cancel").click();
  })

  $("body").on("click", ".abracadabra-cancel", function() {
    container = $(this).closest(".abracadabra-container");
    value = $(this).parents(".abracadabra-buttons").siblings().find("input").val();
    container.siblings(".abracadabra").text(value).show();
    $(this).closest(".abracadabra-container").remove();
  });

  $("body").on("keydown", ".abracadabra-input input", function(e) {
    if (e.which == 9)
    {
      e.preventDefault();
      $(this.form).submit();
    }
  });
  
  $(".abracadabra").on("click", function() {
    link = $(this);
    link.hide();
    path = link.data("path");
    attribute = link.data("attribute");
    form_method = link.data("method");
    instance_class = link.data("class");
    input_value = link.text();
    input_id = instance_class + "_" + attribute;
    input_name = instance_class + "[" + attribute + "]";

    buttons = "<button type='submit' class='btn btn-primary abracadabra-submit'><i class='fa fa-check'></i></button><button type='button' class='btn abracadabra-cancel'><i class='fa fa-times'></i></button>";
    open_form_tag = "<form accept-charset='UTF-8' action='" + path + "' data-remote='true' class='form-inline abracadabra-form' method='post'>";
    hidden_method_tags = "<div style='display:none;'><input name='utf8' type='hidden' value='&#10003;'><input name='_method' type='hidden' value='" + form_method + "'></div>";
    input = "<input type='text' class='form-control' id='" + input_id + "' name='" + input_name + "' value='" + input_value + "'>";
    
    html = "<span class='abracadabra-container abracadabra-inline'>" + open_form_tag + hidden_method_tags;
    html += "<div class='control-group'><div><div class='abracadabra-input'>" + input + "</div>";
    html += "<div class='abracadabra-buttons'>" + buttons + "</div></div></form></span>";

    link.after(html);
  });
});

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
abracadabra-1.0.0 app/assets/javascripts/abracadabra.js