module ProjectsHelper def remove_from_project_team_message(project, user) "You are going to remove #{user.name} from #{project.name} project team. Are you sure?" end def link_to_project project 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 end def link_to_member(project, author, opts = {}) default_opts = { avatar: true, name: true, size: 16 } opts = default_opts.merge(opts) return "(deleted)" unless author author_html = "" # Build avatar image tag 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] # Build name span tag author_html << content_tag(:span, sanitize(author.name), class: 'author') if opts[:name] author_html = author_html.html_safe if opts[:name] link_to(author_html, user_path(author), class: "author_link").html_safe else link_to(author_html, user_path(author), class: "author_link has_tooltip", data: { :'original-title' => sanitize(author.name) } ).html_safe end end def project_title project if project.group content_tag :span do link_to(simple_sanitize(project.group.name), group_path(project.group)) + " / " + project.name end else project.name end end 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 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 def project_filter_path(options={}) exist_opts = { state: params[:state], scope: params[:scope], label_name: params[:label_name], milestone_id: params[:milestone_id], } options = exist_opts.merge(options) path = request.path path << "?#{options.to_param}" path end def project_active_milestones @project.milestones.active.order("id desc").all end private def get_project_nav_tabs(project, current_user) nav_tabs = [:home] if !project.empty_repo? && 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 end