Newer
Older
var WebSocketReceiver = {
initialize: function(url) {
//Attach onmessage to websocket
ws.onmessage = WSR.onMessage;
ws.onopen = function() {
ws.send(location.pathname);
WSR.debug("connected...");
};
},
onMessage: function(evt) {
var obj = jQuery.parseJSON(evt.data);
if(obj['class'].match(/^notifications/)) {
danielvincent
a validé
WebSocketReceiver.processNotification(obj);
WSR.debug("got a " + obj['class']);
WebSocketReceiver.processPerson(obj);
} else {
WSR.debug("got a " + obj['class'] + " for aspects " + obj.aspect_ids);
if (obj['class']=="retractions") {
WebSocketReceiver.processRetraction(obj.post_id);
} else if (obj['class']=="comments") {
WebSocketReceiver.processComment(obj.post_id, obj.comment_id, obj.html, {
'notification': obj.notification,
'mine?': obj['mine?'],
'my_post?': obj['my_post?']
});
MrZYX
a validé
} else if (obj['class']=="likes") {
WebSocketReceiver.processLike(obj.post_id, obj.html)
} else {
WebSocketReceiver.processPost(obj['class'], obj.post_id, obj.html, obj.aspect_ids);
danielvincent
a validé
var form = $('.webfinger_form');
var result_ul = form.siblings('#request_result');
result_ul.find('.error').text(response.response).show();
} else {
$('#people_stream').prepend(response.html).slideDown('slow', function(){});
var first_li = result_ul.find('li:first');
result_ul.find("[name='request[into]']").val(result_ul.attr('aspect_id'));
result_ul.children(':nth-child(2)').slideDown('fast', function(){});
}
},
danielvincent
a validé
processNotification: function(notification){
var nBadge = $("#notification_badge div.badge_count");
danielvincent
a validé
nBadge.html().replace(/\d+/, function(num){
nBadge.html(parseInt(num)+1);
});
if(nBadge.hasClass("hidden")){
nBadge.removeClass("hidden");
}
$('#notification').html(notification['html'])
.fadeIn(200)
.delay(8000)
.fadeOut(200, function(){
$(this).html("");
});
},
processRetraction: function(post_id){
$("*[data-guid='" + post_id + "']").fadeOut(400, function() {
$(this).remove();
});
if($("#main_stream")[0].childElementCount == 0) {
$("#no_posts").fadeIn(200);
}
},
danielvincent
a validé
var post = $("*[data-guid='"+postId+"']'");
$('.comment.posted', post).last().after(
danielvincent
a validé
$(html).fadeIn("fast", function(){})
var toggler = $('.show_post_comments', post);
danielvincent
a validé
if(toggler.length > 0){
toggler.html(
maxwell
a validé
toggler.html().replace(/\d+/,$('.comments', post).find('li').length -1)
danielvincent
a validé
);
danielvincent
a validé
toggler.click();
}
if( $(".show_comments", post).hasClass('hidden') ){
$(".show_comments", post).removeClass('hidden');
}
MrZYX
a validé
processLike: function(postId, html) {
var post = $("*[data-guid='"+postId+"']");
$(".likes_container", post).fadeOut('fast').html(html).fadeIn('fast');
},
processPost: function(className, postId, html, aspectIds) {
if(WebSocketReceiver.onPageForAspects(aspectIds)) {
danielvincent
a validé
WebSocketReceiver.addPostToStream(postId, html);
if( $(".stream_element[data-guid='" + postId + "']").length == 0 ) {
var streamElement = $(html);
Raphael Sofaer
a validé
$("#main_stream:not('.show')").prepend(
streamElement.fadeIn("fast", function() {
streamElement.find("label").inFieldLabels();
Raphael Sofaer
a validé
})
);
danielvincent
a validé
};
danielvincent
a validé
$("#no_posts").fadeOut(400, showMessage()).hide();
} else {
showMessage();
}
Diaspora.widgets.timeago.updateTimeAgo();
danielvincent
a validé
}
return (location.href.indexOf(className) != -1 );
},
var streamIds = $('#main_stream').attr('data-guids'),
found = false;
$.each(aspectIds, function(index, value) {
if(WebSocketReceiver.onStreamForAspect(value, streamIds)) {
onStreamForAspect: function(aspectId, streamIds) {
return (streamIds.search(aspectId) != -1);
},
onPageOne: function() {
var c = document.location.search.charAt(document.location.search.length-1);
return ((c =='') || (c== '1'));
},
$("#debug").append("<p>" + str);