56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
<%#= encoding: utf-8 %>
 | 
						|
$(function() {
 | 
						|
  var content_holder, content;
 | 
						|
  var selector = 'a[contenteditable="true"]';
 | 
						|
  // prevent clicks inside editable area to fire
 | 
						|
  // a click event on the body
 | 
						|
  // and therefor saving our content before we even edit it
 | 
						|
  
 | 
						|
$(".nav-tabs").find(".icons-pencil").click(function(){
 | 
						|
  $(this).css({
 | 
						|
    "display" : "none"
 | 
						|
  })
 | 
						|
  $(this).next().attr("contenteditable",true).addClass("edit");
 | 
						|
  // $(selector).click(function(e) {
 | 
						|
  //   e.stopPropagation();
 | 
						|
  // });
 | 
						|
  
 | 
						|
  // initialize the "save" function
 | 
						|
  $(selector).focus(function(e) {
 | 
						|
    content_holder = $(this);
 | 
						|
    content   = content_holder.html();
 | 
						|
    // one click outside the editable area saves the content
 | 
						|
    $(selector).keypress( function(e) {
 | 
						|
      // but not if the content didn't change
 | 
						|
      //alert('out!!');
 | 
						|
  if(e.keyCode == 13){ 
 | 
						|
     $(".nav-tabs>li>a").removeClass("edit");
 | 
						|
     $(this).prev(".icons-pencil").css({
 | 
						|
      "display" : "block"
 | 
						|
     })
 | 
						|
      e.preventDefault();
 | 
						|
      // if ($(e.target).is(selector) || content == content_holder.html()) {
 | 
						|
      //   return;
 | 
						|
      // }
 | 
						|
      
 | 
						|
      $.ajax({
 | 
						|
        url: content_holder.data('edit-url'),
 | 
						|
        type: 'POST',
 | 
						|
        dataType: 'json',
 | 
						|
        data: { body: content_holder.html() },
 | 
						|
        success: function(json) {
 | 
						|
          $(selector).attr("contenteditable",false)
 | 
						|
          alert("<%= I18n.t('admin.contenteditable.update_done') %>");
 | 
						|
          //content_holder.effect('highlight', {'color': '#0f0'}, 3000);
 | 
						|
        },
 | 
						|
        error: function() {
 | 
						|
          alert("<%= I18n.t('admin.contenteditable.update_failed') %>");
 | 
						|
          //content_holder.effect('highlight', {'color': '#f00'}, 3000);
 | 
						|
          content_holder.html(content);
 | 
						|
        }
 | 
						|
      });
 | 
						|
    }
 | 
						|
    });
 | 
						|
  });
 | 
						|
});
 | 
						|
}); |