diff --git a/Handler/Package.hs b/Handler/Package.hs index fc99d99..e135f96 100644 --- a/Handler/Package.hs +++ b/Handler/Package.hs @@ -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)) diff --git a/templates/package.hamlet b/templates/package.hamlet index 0cf469f..20dfda1 100644 --- a/templates/package.hamlet +++ b/templates/package.hamlet @@ -34,9 +34,7 @@ $newline never #{nLikes} \ likes # - $if isJust muid - + $if downloads /= 0 $if downloads /= recentDownloads diff --git a/templates/package.julius b/templates/package.julius index 197e24a..74bb964 100644 --- a/templates/package.julius +++ b/templates/package.julius @@ -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}'; } -} + }); +});