BigW Consortium Gitlab

application_settings_helper.rb 3.05 KB
Newer Older
1
module ApplicationSettingsHelper
2 3 4 5
  def gravatar_enabled?
    current_application_settings.gravatar_enabled?
  end

6
  def signup_enabled?
7
    current_application_settings.signup_enabled?
8 9 10
  end

  def signin_enabled?
11
    current_application_settings.signin_enabled?
12 13
  end

14 15 16 17
  def user_oauth_applications?
    current_application_settings.user_oauth_applications
  end

18 19 20 21
  def askimet_enabled?
    current_application_settings.akismet_enabled?
  end

22 23 24 25
  def koding_enabled?
    current_application_settings.koding_enabled?
  end

26
  def allowed_protocols_present?
27
    current_application_settings.enabled_git_access_protocol.present?
28 29 30
  end

  def enabled_protocol
31
    case current_application_settings.enabled_git_access_protocol
32 33 34 35 36 37 38
    when 'http'
      gitlab_config.protocol
    when 'ssh'
      'ssh'
    end
  end

39
  def enabled_project_button(project, protocol)
40 41
    case protocol
    when 'ssh'
42
      ssh_clone_button(project, 'bottom', append_link: false)
43
    else
44
      http_clone_button(project, 'bottom', append_link: false)
45 46 47
    end
  end

48 49 50 51 52
  # Return a group of checkboxes that use Bootstrap's button plugin for a
  # toggle button effect.
  def restricted_level_checkboxes(help_block_id)
    Gitlab::VisibilityLevel.options.map do |name, level|
      checked = restricted_visibility_levels(true).include?(level)
Darby committed
53
      css_class = 'btn'
54 55 56 57
      css_class += ' active' if checked
      checkbox_name = 'application_setting[restricted_visibility_levels][]'

      label_tag(checkbox_name, class: css_class) do
58 59
        check_box_tag(checkbox_name, level, checked,
                      autocomplete: 'off',
60 61 62 63
                      'aria-describedby' => help_block_id) + name
      end
    end
  end
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80

  # Return a group of checkboxes that use Bootstrap's button plugin for a
  # toggle button effect.
  def import_sources_checkboxes(help_block_id)
    Gitlab::ImportSources.options.map do |name, source|
      checked = current_application_settings.import_sources.include?(source)
      css_class = 'btn'
      css_class += ' active' if checked
      checkbox_name = 'application_setting[import_sources][]'

      label_tag(checkbox_name, class: css_class) do
        check_box_tag(checkbox_name, source, checked,
                      autocomplete: 'off',
                      'aria-describedby' => help_block_id) + name
      end
    end
  end
81

82
  def oauth_providers_checkboxes
83
    button_based_providers.map do |source|
84
      disabled = current_application_settings.disabled_oauth_sign_in_sources.include?(source.to_s)
85
      css_class = 'btn'
Andrei Gliga committed
86
      css_class << ' active' unless disabled
87
      checkbox_name = 'application_setting[enabled_oauth_sign_in_sources][]'
88 89

      label_tag(checkbox_name, class: css_class) do
90
        check_box_tag(checkbox_name, source, !disabled,
91
                      autocomplete: 'off') + Gitlab::OAuth::Provider.label_for(source)
92 93 94
      end
    end
  end
95 96 97 98 99 100 101 102

  def repository_storage_options_for_select
    options = Gitlab.config.repositories.storages.map do |name, path|
      ["#{name} - #{path}", name]
    end

    options_for_select(options, @application_setting.repository_storage)
  end
103
end