diaspora/public/javascripts/mobile.js

139 lines
3.7 KiB
JavaScript

$(document).ready(function(){
$(".stream").delegate(".like_action.inactive", "tap click", function(evt){
evt.preventDefault();
var link = $(this),
likeCounter = $(this).closest(".stream_element").find("like_count"),
postId = link.closest(".stream_element").data("post-guid");
$.ajax({
url: link.attr("href"),
dataType: 'json',
type: 'POST',
beforeSend: function(){
link.removeClass('inactive')
.addClass('loading');
},
complete: function(data){
link.removeClass('loading')
.removeClass('inactive')
.addClass('active')
.data('post-id', postId);
if(likeCounter){
likeCounter.text(parseInt(likeCounter.text) + 1);
}
}
});
});
$(".stream").delegate(".like_action.active", "tap click", function(evt){
evt.preventDefault();
var link = $(this);
likeCounter = $(this).closest(".stream_element").find("like_count");
$.ajax({
url: link.attr("href"),
dataType: 'json',
type: 'DELETE',
beforeSend: function(){
link.removeClass('active')
.addClass('loading');
},
complete: function(data){
link.removeClass('loading')
.removeClass('active')
.addClass('inactive')
.data('like-id', '');
if(likeCounter){
likeCounter.text(parseInt(likeCounter.text) - 1);
}
}
});
});
$("a.show_comments").bind("tap click", function(evt){
evt.preventDefault();
var link = $(this),
parent = link.closest(".bottom_bar").first(),
commentsContainer = parent.find(".comment_container");
if( link.hasClass('active') ) {
commentsContainer.first().hide();
link.removeClass('active');
} else if( commentsContainer.length > 0 ) {
commentsContainer.first().show();
link.addClass('active');
} else {
$.ajax({
url: link.attr('href'),
success: function(data){
parent.append(data);
link.addClass('active');
}
});
}
});
$(".stream").delegate("a.comment_action", "tap click", function(evt){
evt.preventDefault();
var link = $(this);
if(link.hasClass('inactive')) {
var parent = link.closest(".bottom_bar").first(),
container = link.closest('.bottom_bar').find('.add_comment_bottom_link_container');
$.ajax({
url: link.attr('href'),
beforeSend: function(){
link.addClass('loading');
},
success: function(data){
var textarea = parent.find('textarea').first();
lineHeight = 14;
link.removeClass('loading')
.removeClass('inactive');
container.first().hide();
parent.append(data);
textarea.focus();
new MBP.autogrow(textarea, lineHeight);
}
});
}
});
$(".stream").delegate("a.cancel_new_comment", "tap click", function(evt){
evt.preventDefault();
var link = $(this);
form = link.closest("form"),
commentActionLink = link.closest(".bottom_bar").find("a.comment_action").first();
container = link.closest('.bottom_bar').find('.add_comment_bottom_link_container');
if(container.length > 0 ){
container.first().show();
}
commentActionLink.addClass("inactive");
form.remove();
});
$(".new_comment").live("submit", function(evt){
evt.preventDefault();
var form = $(this);
$.post(form.attr('action')+"?format=mobile", form.serialize(), function(data){
var container = form.closest('.bottom_bar').find('.add_comment_bottom_link_container');
container.before(data);
form.remove();
container.show();
}, 'html');
});
});