Like button tweaks (closes #15)

This commit is contained in:
Chris Done 2014-11-13 20:30:44 +01:00
parent 9c229d2d4e
commit 436cdfb15e
3 changed files with 25 additions and 16 deletions

View File

@ -45,6 +45,9 @@ getPackageR pn = do
return (packages, downloads, recentDownloads, nLikes, liked, metadata)
let likedClass = if liked then "fa-thumbs-up" else "fa-thumbs-o-up" :: Text
likeTitle = if liked
then "You liked this!"
else "I like this!" :: Text
let deps = enumerate (metadataDeps metadata)
authors = enumerate (parseIdentitiesLiberally (metadataAuthor metadata))

View File

@ -34,9 +34,7 @@ $newline never
<span #likes>
#{nLikes}
\ likes #
$if isJust muid
<i .fa.#{likedClass}
onclick="toggleLike(this)"></i>
<i .fa .#{likedClass} #like title="#{likeTitle}">
$if downloads /= 0
<span .downloads>
$if downloads /= recentDownloads

View File

@ -8,26 +8,34 @@ $(function(){
});
}
});
});
$('#like').click(function(){
var loggedIn = $('.user-handle').length > 0;
function toggleLike(el) {
var $this = $(el);
var action = 'like';
if ($this.hasClass('fa-thumbs-up')) {
var $this = $(this);
if (loggedIn) {
var action = 'like';
if ($this.hasClass('fa-thumbs-up')) {
action = 'unlike';
}
}
$this.toggleClass('fa-thumbs-up');
$this.toggleClass('fa-thumbs-o-up');
$this.toggleClass('fa-thumbs-up');
$this.toggleClass('fa-thumbs-o-up');
$likes = $('#likes');
nLikes = parseInt($likes.text(), 10);
$likes = $('#likes');
nLikes = parseInt($likes.text(), 10);
if (action == 'like') {
if (action == 'like') {
$this.attr('title','You liked this!');
$likes.text(nLikes + 1);
$.post("@{PackageLikeR pn}");
} else {
} else {
$this.attr('title','You disliked this.');
$likes.text(nLikes - 1);
$.post("@{PackageUnlikeR pn}");
}
} else {
window.location.href = '@{AuthR LoginR}';
}
}
});
});