projects_helper.rb 2.2 KB
Newer Older
R
randx 已提交
1
module ProjectsHelper
2 3
  def remove_from_project_team_message(project, user)
    "You are going to remove #{user.name} from #{project.name} project team. Are you sure?"
D
Dmitriy Zaporozhets 已提交
4
  end
5 6

  def link_to_project project
7 8 9 10 11 12 13 14 15 16
    link_to project do
      title = content_tag(:strong, project.name)

      if project.namespace
        namespace = content_tag(:span, "#{project.namespace.human_name} / ", class: 'tiny')
        title = namespace + title
      end

      title
    end
17
  end
R
randx 已提交
18

19
  def link_to_member(project, author, opts = {})
20
    default_opts = { avatar: true, name: true, size: 16 }
21 22
    opts = default_opts.merge(opts)

23 24
    return "(deleted)" unless author

25 26
    author_html =  ""

27
    # Build avatar image tag
28
    author_html << image_tag(gravatar_icon(author.try(:email), opts[:size]), width: opts[:size], class: "avatar avatar-inline #{"s#{opts[:size]}" if opts[:size]}", alt:'') if opts[:avatar]
29

30
    # Build name span tag
31
    author_html << content_tag(:span, sanitize(author.name), class: 'author') if opts[:name]
32

33
    author_html = author_html.html_safe
34

35
    link_to(author_html, user_path(author), class: "author_link").html_safe
R
randx 已提交
36
  end
37 38 39

  def project_title project
    if project.group
40
      content_tag :span do
41
        link_to(simple_sanitize(project.group.name), group_path(project.group)) + " / " + project.name
42
      end
43 44 45 46
    else
      project.name
    end
  end
47 48 49 50

  def remove_project_message(project)
    "You are going to remove #{project.name_with_namespace}.\n Removed project CANNOT be restored!\n Are you ABSOLUTELY sure?"
  end
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82

  def project_nav_tabs
    @nav_tabs ||= get_project_nav_tabs(@project, current_user)
  end

  def project_nav_tab?(name)
    project_nav_tabs.include? name
  end

  private

  def get_project_nav_tabs(project, current_user)
    nav_tabs = [:home]

    if project.repo_exists? && can?(current_user, :download_code, project)
      nav_tabs << [:files, :commits, :network, :graphs]
    end

    if project.repo_exists? && project.merge_requests_enabled
      nav_tabs << :merge_requests
    end

    if can?(current_user, :admin_project, project)
      nav_tabs << :settings
    end

    [:issues, :wiki, :wall, :snippets].each do |feature|
      nav_tabs << feature if project.send :"#{feature}_enabled"
    end

    nav_tabs.flatten
  end
R
randx 已提交
83
end