Sha256: f5bc95c00113771f847c1c01883ba46103251ccac55dc59b823fff977509be64

Contents?: true

Size: 1.87 KB

Versions: 8

Compression:

Stored size: 1.87 KB

Contents

jQuery.fn.rest_in_place = function(url, objectName, attributeName) {
  var e = this;
  function clickFunction() {
    var oldValue = e.html();
    e.html('<form action="javascript:void(0)" style="display:inline;"><input type="text" value="' + oldValue + '"></form>');
    e.find("input")[0].select();
    e.unbind('click');
    e.find("input").blur(function(){
      e.html(oldValue);
      e.click(clickFunction);
    })
    e.find("form").submit(function(){
      var value = e.find("input").val();
      e.html("saving...");
      jQuery.ajax({
        "url" : url,
        "type" : "post",
        "data" : "_method=put&"+objectName+'['+attributeName+']='+encodeURIComponent(value)+(window.rails_authenticity_token ? "&authenticity_token="+encodeURIComponent(window.rails_authenticity_token) : ''),
        "success" : function(){
          jQuery.ajax({
            "url" : url,
            "beforeSend"  : function(xhr){ xhr.setRequestHeader("Accept", "application/javascript"); },
            "success" : function(json){
              e.html(eval('(' + json + ')' )[objectName][attributeName]);
              e.click(clickFunction);
            }
          });
        }
      });
      return false;
    })
  }
  this.click(clickFunction);
}

jQuery(function(){
  jQuery(".rest_in_place").each(function(){
    var e = jQuery(this);
    var url; var obj; var attrib;
    e.parents().each(function(){
      url    = url    || jQuery(this).attr("url");
      obj    = obj    || jQuery(this).attr("object");
      attrib = attrib || jQuery(this).attr("attribute");
    });
    e.parents().each(function(){
      if (res = this.id.match(/^(\w+)_(\d+)$/i)) {
        obj = obj || res[1];
      }
    });
    url    = e.attr("url")       || url    || document.location.pathname;
    obj    = e.attr("object")    || obj;
    attrib = e.attr("attribute") || attrib;
    e.rest_in_place(url, obj, attrib);
  });
});

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
head_start-0.1.7 vendor/assets/javascripts/scorpion/jquery.rest_in_place.js
head_start-0.1.6 vendor/assets/javascripts/scorpion/jquery.rest_in_place.js
head_start-0.1.5 vendor/assets/javascripts/scorpion/jquery.rest_in_place.js
head_start-0.1.4 vendor/assets/javascripts/scorpion/jquery.rest_in_place.js
head_start-0.1.3 vendor/assets/javascripts/scorpion/jquery.rest_in_place.js
head_start-0.1.2 vendor/assets/javascripts/scorpion/jquery.rest_in_place.js
head_start-0.1.1 vendor/assets/javascripts/scorpion/jquery.rest_in_place.js
head_start-0.1.0 vendor/assets/javascripts/scorpion/jquery.rest_in_place.js