jbox-web/redmine_git_hosting

View on GitHub
app/helpers/extend_projects_helper.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module ExtendProjectsHelper
  def render_feature(repository, feature)
    method = "#{feature}_feature"
    label, css_class, enabled = send method, repository

    # Get css class
    base_class = ['icon-git']
    base_class << css_class
    base_class << 'icon-git-disabled' unless enabled

    # Get label
    base_label = []
    base_label << label
    base_label << "(#{l :label_disabled})" unless enabled

    tag.i '', title: base_label.join(' '), class: base_class
  end

  def deployment_credentials_feature(repository)
    label = l :label_deployment_credentials
    css_class = 'fas fa-lock'
    enabled = repository.deployment_credentials.active.any?
    [label, css_class, enabled]
  end

  def post_receive_urls_feature(repository)
    label = l :label_post_receive_urls
    css_class = 'fas fa-external-link-alt'
    enabled = repository.post_receive_urls.active.any?
    [label, css_class, enabled]
  end

  def mirrors_feature(repository)
    label = l :label_repository_mirrors
    css_class = 'fas fa-cloud-upload-alt'
    enabled = repository.mirrors.active.any?
    [label, css_class, enabled]
  end

  def git_daemon_feature(repository)
    label = l :label_git_daemon
    css_class = 'fab fa-git'
    enabled = repository.git_access_available?
    [label, css_class, enabled]
  end

  def git_http_feature(repository)
    label = l :label_smart_http
    css_class = 'fas fa-cloud-download-alt'
    enabled = repository.smart_http_enabled?
    [label, css_class, enabled]
  end

  def git_notify_feature(repository)
    label = l :label_git_notify
    css_class = 'fas fa-bullhorn'
    enabled = repository.git_notification_enabled?
    [label, css_class, enabled]
  end

  def protected_branch_feature(repository)
    label = l :label_protected_branch
    css_class = 'fas fa-shield-alt'
    enabled = repository.protected_branches_available?
    [label, css_class, enabled]
  end

  def git_annex_feature(repository)
    label = l :label_git_annex
    css_class = 'fas fa-cloud-upload-alt'
    enabled = repository.git_annex_enabled?
    [label, css_class, enabled]
  end

  def public_repo_feature(repository)
    label = l :label_public_repo
    css_class = 'fas fa-users'
    enabled = repository.public_repo?
    [label, css_class, enabled]
  end
end