Skip to content

Commit 75c63dc

Browse files
committed
Merge pull request #13 from ashwin-sureshkumar/master
Added unlike functionality on tricks
2 parents e7478ea + 370c3c0 commit 75c63dc

File tree

3 files changed

+45
-24
lines changed

3 files changed

+45
-24
lines changed

app/Controllers/TricksController.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,22 @@ public function postLike($slug)
7272
}
7373

7474
$user = Auth::user();
75-
$user = $trick->votes()->attach($user->id, [
76-
'created_at' => new \DateTime,
77-
'updated_at' => new \DateTime
78-
]);
75+
76+
$voted = $trick->votes()->whereUserId($user->id)->first();
77+
78+
if(!$voted) {
79+
80+
$user = $trick->votes()->attach($user->id, [
81+
'created_at' => new \DateTime,
82+
'updated_at' => new \DateTime
83+
]);
84+
$trick->vote_cache = $trick->vote_cache + 1;
85+
86+
} else {
87+
$trick->votes()->detach($voted->id);
88+
$trick->vote_cache = $trick->vote_cache - 1;
89+
}
7990

80-
$trick->vote_cache = $trick->vote_cache + 1;
8191
$trick->save();
8292

8393
return Response::make($trick->vote_cache, 200);

app/views/tricks/single.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
</script>
1212
@if(Auth::check())
1313
<script>
14-
$(function(){$(".js-like-trick").click(function(e){e.preventDefault();if($(this).data("liked")=="0"){var t={_token: '{{ csrf_token() }}'};$.post('{{ route("tricks.like", $trick->slug) }}',t,function(e){if(e!="error"){$(".js-like-trick").find(".fa").addClass("text-primary");$(".js-like-trick").data("liked","1");$(".js-like-status").html("You like this");$(".js-like-count").html(e+" likes")}})}})})
15-
</script>
14+
(function(e){e(".js-like-trick").click(function(t){t.preventDefault();var n=e(this).data("liked")=="0";var r={_token:"{{ csrf_token() }}"};e.post('{{ route("tricks.like", $trick->slug) }}',r,function(t){if(t!="error"){if(!n){e(".js-like-trick .fa").removeClass("text-red");e(".js-like-trick").data("liked","0");e(".js-like-status").html("Like this?")}else{e(".js-like-trick .fa").addClass("text-red");e(".js-like-trick").data("liked","1");e(".js-like-status").html("You like this")}e(".js-like-count").html(t+" likes")}})})})(jQuery)
15+
</script>
1616
@endif
1717
@stop
1818

public/js/trick-like-backup.js

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,33 @@
1-
$(function()
2-
{
3-
$('.js-like-trick').click(function(e)
4-
{
1+
(function ($) {
2+
3+
$('.js-like-trick').click(function (e) {
54
e.preventDefault();
6-
if($(this).data('liked') == '0')
7-
{
8-
var data = {};
9-
10-
$.post('{{ route("tricks.like", $trick->slug) }}', data, function(res)
11-
{
12-
if(res != 'error')
13-
{
14-
$('.js-like-trick').find('.fa').addClass('text-primary');
5+
var liked = $(this).data('liked') == '0';
6+
7+
var data = {"_token": "{{ csrf_token() }}" };
8+
9+
$.post('{{ route("tricks.like", $trick->slug) }}', data, function (res) {
10+
if (res != 'error') {
11+
12+
if (!liked) {
13+
14+
$('.js-like-trick .fa').removeClass('text-red');
15+
16+
$('.js-like-trick').data('liked', '0');
17+
18+
$('.js-like-status').html('Like this?');
19+
} else {
20+
21+
$('.js-like-trick .fa').addClass('text-red');
22+
1523
$('.js-like-trick').data('liked', '1');
24+
1625
$('.js-like-status').html('You like this');
17-
$('.js-like-count').html(res + ' likes');
1826
}
19-
});
20-
}
27+
28+
$('.js-like-count').html(res + ' likes');
29+
}
30+
});
31+
2132
});
22-
});
33+
})(jQuery)

0 commit comments

Comments
 (0)