summaryrefslogtreecommitdiff
path: root/app/views/profiles/preferences/show.html.haml
blob: 48be2001c9c7436568af8c4d3e6a820c126b27bc (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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
- page_title _('Preferences')
- @content_class = "limit-container-width" unless fluid_layout
- user_theme_id = Gitlab::Themes.for_user(@user).id
- user_fields = { theme: user_theme_id, gitpod_enabled: @user.gitpod_enabled, sourcegraph_enabled: @user.sourcegraph_enabled }.to_json
- @themes = Gitlab::Themes::available_themes.to_json
- data_attributes = { themes: @themes, integration_views: integration_views.to_json, user_fields: user_fields, body_classes: Gitlab::Themes.body_classes, profile_preferences_path: profile_preferences_path }

- Gitlab::Themes.each do |theme|
  = stylesheet_link_tag "themes/#{theme.css_filename}" if theme.css_filename

= form_for @user, url: profile_preferences_path, remote: true, method: :put, html: { id: "profile-preferences-form" } do |f|
  .row.gl-mt-3.js-preferences-form.js-search-settings-section
    .col-lg-4.application-theme#navigation-theme
      %h4.gl-mt-0
        = s_('Preferences|Navigation theme')
      %p
        = s_('Preferences|Customize the appearance of the application header and navigation sidebar.')
    .col-lg-8.application-theme
      .row
        - Gitlab::Themes.each do |theme|
          %label.col-6.col-sm-4.col-md-3.gl-mb-5.gl-text-center
            .preview{ class: theme.css_class }
            = f.radio_button :theme_id, theme.id, checked: user_theme_id == theme.id
            = theme.name

    .col-sm-12
      %hr

  .row.js-preferences-form.js-search-settings-section
    .col-lg-4.profile-settings-sidebar#syntax-highlighting-theme
      %h4.gl-mt-0
        = s_('Preferences|Syntax highlighting theme')
      %p
        = s_('Preferences|This setting allows you to customize the appearance of the syntax.')
        = succeed '.' do
          = link_to _('Learn more'), help_page_path('user/profile/preferences', anchor: 'syntax-highlighting-theme'), target: '_blank', rel: 'noopener noreferrer'
    .col-lg-8.syntax-theme
      - Gitlab::ColorSchemes.each do |scheme|
        = label_tag do
          .preview= image_tag "#{scheme.css_class}-scheme-preview.png"
          = f.radio_button :color_scheme_id, scheme.id
          = scheme.name

    .col-sm-12
      %hr

  .row.js-preferences-form.js-search-settings-section
    .col-lg-4.profile-settings-sidebar#behavior
      %h4.gl-mt-0
        = s_('Preferences|Behavior')
      %p
        = s_('Preferences|This setting allows you to customize the behavior of the system layout and default views.')
        = succeed '.' do
          = link_to _('Learn more'), help_page_path('user/profile/preferences', anchor: 'behavior'), target: '_blank', rel: 'noopener noreferrer'
    .col-lg-8
      .form-group
        = f.label :layout, class: 'label-bold' do
          = s_('Preferences|Layout width')
        = f.select :layout, layout_choices, {}, class: 'select2'
        .form-text.text-muted
          = s_('Preferences|Choose between fixed (max. 1280px) and fluid (%{percentage}) application layout.').html_safe % { percentage: '100%' }
      .form-group
        = f.label :dashboard, class: 'label-bold' do
          = s_('Preferences|Homepage content')
        = f.select :dashboard, dashboard_choices, {}, class: 'select2'
        .form-text.text-muted
          = s_('Preferences|Choose what content you want to see on your homepage.')

      = render_if_exists 'profiles/preferences/group_overview_selector', f: f # EE-specific

      .form-group
        = f.label :project_view, class: 'label-bold' do
          = s_('Preferences|Project overview content')
        = f.select :project_view, project_view_choices, {}, class: 'select2'
        .form-text.text-muted
          = s_('Preferences|Choose what content you want to see on a project’s overview page.')
      .form-group.form-check
        = f.check_box :render_whitespace_in_code, class: 'form-check-input'
        = f.label :render_whitespace_in_code, class: 'form-check-label' do
          = s_('Preferences|Render whitespace characters in the Web IDE')
      .form-group.form-check
        = f.check_box :show_whitespace_in_diffs, class: 'form-check-input'
        = f.label :show_whitespace_in_diffs, class: 'form-check-label' do
          = s_('Preferences|Show whitespace changes in diffs')
      .form-group.form-check
        = f.check_box :view_diffs_file_by_file, class: 'form-check-input'
        = f.label :view_diffs_file_by_file, class: 'form-check-label' do
          = s_("Preferences|Show one file at a time on merge request's Changes tab")
        .form-text.text-muted
          = s_("Preferences|Instead of all the files changed, show only one file at a time. To switch between files, use the file browser.")
      .form-group.form-check
        = f.check_box :markdown_surround_selection, class: 'form-check-input'
        = f.label :markdown_surround_selection, class: 'form-check-label' do
          = s_('Preferences|Surround text selection when typing quotes or brackets')
        .form-text.text-muted
          - supported_characters = %w(" ' ` \( [ { < * _).map {|char| "<code>#{char}</code>" }.join(', ')
          = sprintf(s_( "Preferences|When you type in a description or comment box, selected text is surrounded by the corresponding character after typing one of the following characters: %{supported_characters}."), { supported_characters: supported_characters }).html_safe

      .form-group
        = f.label :tab_width, s_('Preferences|Tab width'), class: 'label-bold'
        = f.number_field :tab_width,
                         class: 'form-control gl-form-input',
                         min: Gitlab::TabWidth::MIN,
                         max: Gitlab::TabWidth::MAX,
                         required: true
        .form-text.text-muted
          = s_('Preferences|Must be a number between %{min} and %{max}') % { min: Gitlab::TabWidth::MIN, max: Gitlab::TabWidth::MAX }

    .col-sm-12
      %hr
  .row.js-preferences-form.js-search-settings-section
    .col-lg-4.profile-settings-sidebar#localization
      %h4.gl-mt-0
        = _('Localization')
      %p
        = _('Customize language and region related settings.')
        = succeed '.' do
          = link_to _('Learn more'), help_page_path('user/profile/preferences', anchor: 'localization'), target: '_blank', rel: 'noopener noreferrer'
    .col-lg-8
      .form-group
        = f.label :preferred_language, class: 'label-bold' do
          = _('Language')
        = f.select :preferred_language, language_choices, {}, class: 'select2'
        .form-text.text-muted
          = s_('Preferences|This feature is experimental and translations are not complete yet')
      .form-group
        = f.label :first_day_of_week, class: 'label-bold' do
          = _('First day of the week')
        = f.select :first_day_of_week, first_day_of_week_choices_with_default, {}, class: 'select2'
    .col-sm-12
      %hr
  .row.js-preferences-form.js-search-settings-section
    .col-lg-4.profile-settings-sidebar#time-preferences
      %h4.gl-mt-0
        = s_('Preferences|Time preferences')
      %p
        = s_('Preferences|Configure how dates and times display for you.')
        = succeed '.' do
          = link_to _('Learn more'), help_page_path('user/profile/preferences', anchor: 'time-preferences'), target: '_blank', rel: 'noopener noreferrer'
    .col-lg-8
      .form-group.form-check
        = f.check_box :time_display_relative, class: 'form-check-input'
        = f.label :time_display_relative, class: 'form-check-label' do
          = s_('Preferences|Use relative times')
        .form-text.text-muted
          = s_('Preferences|For example: 30 minutes ago.')
      - if Feature.enabled?(:user_time_settings)
        .form-group.form-check
          = f.check_box :time_format_in_24h, class: 'form-check-input'
          = f.label :time_format_in_24h, class: 'form-check-label' do
            = s_('Preferences|Display time in 24-hour format')

  #js-profile-preferences-app{ data: data_attributes }