orbit-basic/app/assets/javascripts/lib/contenteditable.js.erb

41 lines
1.3 KiB
Plaintext
Raw Normal View History

<%#= encoding: utf-8 %>
$(function() {
var content_holder, content;
var selector = 'li[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
$(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
$('body').one('click', function(e) {
// but not if the content didn't change
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) {
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);
}
});
});
});
});