summaryrefslogtreecommitdiff
path: root/app/views/projects/buttons/_star.html.haml
blob: aba959f991a965f1781fffd2d73da233a0174abe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
- if current_user
  = link_to toggle_star_namespace_project_path(@project.namespace, @project), class: 'btn star-btn toggle-star has_tooltip', method: :post, remote: true, title: "Star project" do
    - if current_user.starred?(@project)
      = icon('star fw')
      %span.starred Unstar
    - else
      = icon('star-o fw')
      %span Star
  %div.count-with-arrow
    %span.arrow
    %span.count
      = @project.star_count

  :javascript
    $('.project-home-panel .toggle-star').on('ajax:success', function (e, data, status, xhr) {
      var $this = $(this);
      var $starSpan = $this.find('span');
      var $starIcon = $this.find('i');
      $this
        .parent()
        .find('span.count')
        .text(data.star_count);
      if($starSpan.hasClass('starred')){
        $starSpan
          .removeClass('starred')
          .text('Star');
        $starIcon
          .removeClass('fa-star')
          .addClass('fa-star-o');

      } else {
        $starSpan
          .addClass('starred')
          .text('Unstar');
        $starIcon
          .removeClass('fa-star-o')
          .addClass('fa-star');
      }
    })
    .on('ajax:error', function (e, xhr, status, error) {
      new Flash('Star toggle failed. Try again later.', 'alert');
    });

- else
  = link_to new_user_session_path, class: 'btn has_tooltip star-btn', title: 'You must sign in to star a project' do
    = icon('star fw')
    Star
  %div.count-with-arrow
    %span.arrow
    %span.count
      = @project.star_count