Skip to content

Instantly share code, notes, and snippets.

@Borgaard
Created October 7, 2016 18:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Borgaard/b60cd19978b85943584088b337db3942 to your computer and use it in GitHub Desktop.
Save Borgaard/b60cd19978b85943584088b337db3942 to your computer and use it in GitHub Desktop.
fixed votes!
firebase.initializeApp(config);
var messageAppReference = firebase.database();
$(document).ready(function(){
$('#message-form').submit(function(event){
event.preventDefault();
console.log("ALLO??!?!")
var message = $('#message').val();
$('#message').val('');
//create section for messages in db
var messageReference = messageAppReference.ref('messages');
messageReference.push({
message: message,
votes: 0
});
});
messageClass.getPosts();
});
var messageClass = (function(){
function getPosts(){
messageAppReference.ref('messages').on('value', function(results) {
var $messageBoard = $('.message-board');
var messages = [];
var allMsgs = results.val();
for (var msg in allMsgs) {
var message = allMsgs[msg].message;
var votes = allMsgs[msg].votes;
var $messageListElement = $('<li>');
var $deleteElement = $('<i class="fa fa-trash pull-right delete"></i>');
$deleteElement.on('click', function(e){
var id = $(e.target.parentNode).data('id');
deleteMessage(id);
});
var $upVoteElement = $('<i class="fa fa-thumbs-up pull-right"></i>');
$upVoteElement.on('click', function(e){
var id = $(e.target.parentNode).data('id');
updateMessage(id, ++allMsgs[id].votes); //votes variable stores value independent of node id. this change targets the id.
});
var $downVoteElement = $('<i class="fa fa-thumbs-down pull-right"></i>');
$downVoteElement.on('click', function(e){
var id = $(e.target.parentNode).data('id');
updateMessage(id, --allMsgs[id].votes);
});
$messageListElement.attr('data-id', msg);
$messageListElement.html(message);
$messageListElement.append($deleteElement);
$messageListElement.append($upVoteElement);
$messageListElement.append($downVoteElement);
$messageListElement.append('<div class="pull-right">' +votes+ '</div>');
messages.push($messageListElement);
}
$messageBoard.empty();
for (var i in messages) {
$messageBoard.append(messages[i]);
}
});
}
function updateMessage(id, votes) {
var messageReference = messageAppReference.ref('messages').child(id);
messageReference.update({
votes: votes
});
}
function deleteMessage(id){
var messageReference = messageAppReference.ref('messages').child(id);
messageReference.remove();
}
return {
getPosts: getPosts
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment