Commit 8e7bd24a authored by Andrew Fontaine's avatar Andrew Fontaine

Merge branch 'gl-card-advanced-search' into 'master'

Move the sub-section to gl-card in advanced search settings in admin

See merge request gitlab-org/gitlab!52585
parents 9c266113 5a742414
---
title: Move the sub-section to gl-card in advanced search settings in admin
merge_request: 52585
author: Yogi (@yo)
type: changed
...@@ -17,37 +17,38 @@ ...@@ -17,37 +17,38 @@
= form_errors(@application_setting) = form_errors(@application_setting)
%fieldset %fieldset
.sub-section .gl-card.gl-bg-gray-10.gl-mb-6
- halted_migrations = elasticsearch_available && Elastic::DataMigrationService.halted_migrations? .gl-card-body
- if halted_migrations - halted_migrations = elasticsearch_available && Elastic::DataMigrationService.halted_migrations?
.gl-alert.gl-alert-warning.gl-mt-3.gl-mb-3{ role: 'alert' } - if halted_migrations
= sprite_icon('warning', css_class: 'gl-icon gl-alert-icon gl-alert-icon-no-title') .gl-alert.gl-alert-warning.gl-mt-3.gl-mb-3{ role: 'alert' }
%button.js-close.gl-alert-dismiss{ type: 'button', 'aria-label' => _('Dismiss') } = sprite_icon('warning', css_class: 'gl-icon gl-alert-icon gl-alert-icon-no-title')
= sprite_icon('close', css_class: 'gl-icon') %button.js-close.gl-alert-dismiss{ type: 'button', 'aria-label' => _('Dismiss') }
.gl-alert-body = sprite_icon('close', css_class: 'gl-icon')
%h4.gl-alert-title= _('There is a halted Elasticsearch migration') .gl-alert-body
= html_escape_once(_('Check the elasticsearch.log file to debug why the migration was halted and make any changes before retrying the migration. When you fix the cause of the failure, click "Retry migration", and the migration will be scheduled to be retried in the background.')).html_safe %h4.gl-alert-title= _('There is a halted Elasticsearch migration')
= link_to _('Learn more.'), help_page_path('integration/elasticsearch', anchor: 'background-migrations') = html_escape_once(_('Check the elasticsearch.log file to debug why the migration was halted and make any changes before retrying the migration. When you fix the cause of the failure, click "Retry migration", and the migration will be scheduled to be retried in the background.')).html_safe
.gl-alert-actions = link_to _('Learn more.'), help_page_path('integration/elasticsearch', anchor: 'background-migrations')
- migration = Elastic::DataMigrationService.halted_migration .gl-alert-actions
= link_to _('Retry migration'), admin_elasticsearch_retry_migration_path(version: migration.version), class: 'btn gl-alert-action btn-warning gl-button', disabled: @elasticsearch_reindexing_task&.in_progress?, data: { confirm: _('Are you sure you want to retry this migration?') }, method: :post - migration = Elastic::DataMigrationService.halted_migration
= link_to _('Retry migration'), admin_elasticsearch_retry_migration_path(version: migration.version), class: 'btn gl-alert-action btn-warning gl-button', disabled: @elasticsearch_reindexing_task&.in_progress?, data: { confirm: _('Are you sure you want to retry this migration?') }, method: :post
.form-group
.form-check
= f.check_box :elasticsearch_indexing, class: 'form-check-input', data: { qa_selector: 'indexing_checkbox' }
= f.label :elasticsearch_indexing, class: 'form-check-label' do
= _('Elasticsearch indexing')
- unless Gitlab::CurrentSettings.elasticsearch_indexing?
.form-text.text-muted
= _('An empty index will be created if one does not already exist')
- if Gitlab::CurrentSettings.elasticsearch_indexing?
.form-text
= link_to _('Index all projects'), admin_elasticsearch_enqueue_index_path,
class: ['btn', 'btn-success'], method: :post
.card-body
.form-group .form-group
.form-check .form-check
= f.check_box :elasticsearch_indexing, class: 'form-check-input', data: { qa_selector: 'indexing_checkbox' }
= f.label :elasticsearch_indexing, class: 'form-check-label' do
= _('Elasticsearch indexing')
- unless Gitlab::CurrentSettings.elasticsearch_indexing?
.form-text.text-muted
= _('An empty index will be created if one does not already exist')
- if Gitlab::CurrentSettings.elasticsearch_indexing?
.form-text
= link_to _('Index all projects'), admin_elasticsearch_enqueue_index_path,
class: ['btn', 'btn-success'], method: :post
.gl-card-body
.form-group
.form-check
- pending_migrations = elasticsearch_available && Elastic::DataMigrationService.pending_migrations? && Gitlab::CurrentSettings.elasticsearch_pause_indexing? - pending_migrations = elasticsearch_available && Elastic::DataMigrationService.pending_migrations? && Gitlab::CurrentSettings.elasticsearch_pause_indexing?
- disable_checkbox = !Gitlab::CurrentSettings.elasticsearch_indexing? || pending_migrations - disable_checkbox = !Gitlab::CurrentSettings.elasticsearch_indexing? || pending_migrations
= f.check_box :elasticsearch_pause_indexing, class: 'form-check-input', data: { qa_selector: 'pause_checkbox' }, disabled: disable_checkbox = f.check_box :elasticsearch_pause_indexing, class: 'form-check-input', data: { qa_selector: 'pause_checkbox' }, disabled: disable_checkbox
...@@ -59,174 +60,178 @@ ...@@ -59,174 +60,178 @@
.form-text.text-warning .form-text.text-warning
= _('There are pending advanced search migrations. Indexing must remain paused until the migrations are completed.') = _('There are pending advanced search migrations. Indexing must remain paused until the migrations are completed.')
.form-group .form-group
.form-check .form-check
= f.check_box :elasticsearch_search, class: 'form-check-input', data: { qa_selector: 'search_checkbox' } = f.check_box :elasticsearch_search, class: 'form-check-input', data: { qa_selector: 'search_checkbox' }
= f.label :elasticsearch_search, class: 'form-check-label' do = f.label :elasticsearch_search, class: 'form-check-label' do
Search with Elasticsearch enabled Search with Elasticsearch enabled
.form-group .form-group
= f.label :elasticsearch_url, 'URL', class: 'label-bold' = f.label :elasticsearch_url, 'URL', class: 'label-bold'
= f.text_field :elasticsearch_url, value: @application_setting.elasticsearch_url.join(', '), class: 'form-control gl-form-input', placeholder: 'http://localhost:9200', data: { qa_selector: 'url_field' } = f.text_field :elasticsearch_url, value: @application_setting.elasticsearch_url.join(', '), class: 'form-control gl-form-input', placeholder: 'http://localhost:9200', data: { qa_selector: 'url_field' }
.form-text.text-muted .form-text.text-muted
= _('The URL to use for connecting to Elasticsearch. Use a comma-separated list to support clustering (e.g., "http://localhost:9200, http://localhost:9201").') = _('The URL to use for connecting to Elasticsearch. Use a comma-separated list to support clustering (e.g., "http://localhost:9200, http://localhost:9201").')
.form-group .form-group
= f.label :elasticsearch_shards, _('Number of Elasticsearch shards'), class: 'label-bold' = f.label :elasticsearch_shards, _('Number of Elasticsearch shards'), class: 'label-bold'
= f.number_field :elasticsearch_shards, value: @application_setting.elasticsearch_shards, class: 'form-control gl-form-input' = f.number_field :elasticsearch_shards, value: @application_setting.elasticsearch_shards, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _('How many shards to split the Elasticsearch index over.') = _('How many shards to split the Elasticsearch index over.')
= recreate_index_text = recreate_index_text
.form-group .form-group
= f.label :elasticsearch_replicas, _('Number of Elasticsearch replicas'), class: 'label-bold' = f.label :elasticsearch_replicas, _('Number of Elasticsearch replicas'), class: 'label-bold'
= f.number_field :elasticsearch_replicas, value: @application_setting.elasticsearch_replicas, class: 'form-control gl-form-input' = f.number_field :elasticsearch_replicas, value: @application_setting.elasticsearch_replicas, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _('How many replicas each Elasticsearch shard has.') = _('How many replicas each Elasticsearch shard has.')
= recreate_index_text = recreate_index_text
.form-group .form-group
= f.label :elasticsearch_indexed_file_size_limit_kb, _('Maximum file size indexed (KiB)'), class: 'label-bold' = f.label :elasticsearch_indexed_file_size_limit_kb, _('Maximum file size indexed (KiB)'), class: 'label-bold'
= f.number_field :elasticsearch_indexed_file_size_limit_kb, value: @application_setting.elasticsearch_indexed_file_size_limit_kb, class: 'form-control gl-form-input' = f.number_field :elasticsearch_indexed_file_size_limit_kb, value: @application_setting.elasticsearch_indexed_file_size_limit_kb, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _('Any files larger than this limit will not be indexed, and thus will not be searchable.') = _('Any files larger than this limit will not be indexed, and thus will not be searchable.')
.form-group .form-group
= f.label :elasticsearch_indexed_field_length_limit, _('Maximum field length'), class: 'label-bold' = f.label :elasticsearch_indexed_field_length_limit, _('Maximum field length'), class: 'label-bold'
= f.number_field :elasticsearch_indexed_field_length_limit, value: @application_setting.elasticsearch_indexed_field_length_limit, class: 'form-control gl-form-input' = f.number_field :elasticsearch_indexed_field_length_limit, value: @application_setting.elasticsearch_indexed_field_length_limit, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _('If any indexed field exceeds this limit it will be truncated to this number of characters and the rest will not be indexed or searchable. This does not apply to repository and wiki indexing. Setting this to 0 means it is unlimited.') = _('If any indexed field exceeds this limit it will be truncated to this number of characters and the rest will not be indexed or searchable. This does not apply to repository and wiki indexing. Setting this to 0 means it is unlimited.')
.form-group .form-group
= f.label :elasticsearch_max_bulk_size_mb, _('Maximum bulk request size (MiB)'), class: 'label-bold' = f.label :elasticsearch_max_bulk_size_mb, _('Maximum bulk request size (MiB)'), class: 'label-bold'
= f.number_field :elasticsearch_max_bulk_size_mb, value: @application_setting.elasticsearch_max_bulk_size_mb, class: 'form-control gl-form-input' = f.number_field :elasticsearch_max_bulk_size_mb, value: @application_setting.elasticsearch_max_bulk_size_mb, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _('Maximum size of Elasticsearch bulk indexing requests.') = _('Maximum size of Elasticsearch bulk indexing requests.')
= _('This only applies to repository indexing operations.') = _('This only applies to repository indexing operations.')
.form-group .form-group
= f.label :elasticsearch_max_bulk_concurrency, _('Bulk request concurrency'), class: 'label-bold' = f.label :elasticsearch_max_bulk_concurrency, _('Bulk request concurrency'), class: 'label-bold'
= f.number_field :elasticsearch_max_bulk_concurrency, value: @application_setting.elasticsearch_max_bulk_concurrency, class: 'form-control gl-form-input' = f.number_field :elasticsearch_max_bulk_concurrency, value: @application_setting.elasticsearch_max_bulk_concurrency, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _('Maximum concurrency of Elasticsearch bulk requests per indexing operation.') = _('Maximum concurrency of Elasticsearch bulk requests per indexing operation.')
= _('This only applies to repository indexing operations.') = _('This only applies to repository indexing operations.')
.form-group .form-group
= f.label :elasticsearch_client_request_timeout, _('Client request timeout'), class: 'label-bold' = f.label :elasticsearch_client_request_timeout, _('Client request timeout'), class: 'label-bold'
= f.number_field :elasticsearch_client_request_timeout, value: @application_setting.elasticsearch_client_request_timeout, class: 'form-control gl-form-input' = f.number_field :elasticsearch_client_request_timeout, value: @application_setting.elasticsearch_client_request_timeout, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _('Elasticsearch HTTP client timeout value in seconds.') = _('Elasticsearch HTTP client timeout value in seconds.')
= _('Setting this to 0 means using the system default timeout value.') = _('Setting this to 0 means using the system default timeout value.')
.sub-section .gl-card.gl-bg-gray-10.gl-mb-6
%h4= _('Elasticsearch zero-downtime reindexing') .gl-card-body
= link_to _('Trigger cluster reindexing'), admin_elasticsearch_trigger_reindexing_path, class: "gl-button btn btn-info", disabled: @elasticsearch_reindexing_task&.in_progress?, data: { confirm: _('Are you sure you want to reindex?') }, method: :post %h4= _('Elasticsearch zero-downtime reindexing')
.form-text.gl-text-gray-600 = link_to _('Trigger cluster reindexing'), admin_elasticsearch_trigger_reindexing_path, class: "gl-button btn btn-info", disabled: @elasticsearch_reindexing_task&.in_progress?, data: { confirm: _('Are you sure you want to reindex?') }, method: :post
= _('This feature should be used with an index that was created after 13.0') .form-text.gl-text-gray-600
- Elastic::ReindexingTask.old_indices_scheduled_for_deletion.each do |task| = _('This feature should be used with an index that was created after 13.0')
.form-text.text-danger - Elastic::ReindexingTask.old_indices_scheduled_for_deletion.each do |task|
= _("Unused, previous indices: %{index_names} will be deleted after %{time} automatically.") % { index_names: task.subtasks.map(&:index_name_from).join(', '), time: task.delete_original_index_at } .form-text.text-danger
= link_to _('Cancel index deletion'), admin_elasticsearch_cancel_index_deletion_path(task_id: task.id), class: 'gl-mb-2', method: :post = _("Unused, previous indices: %{index_names} will be deleted after %{time} automatically.") % { index_names: task.subtasks.map(&:index_name_from).join(', '), time: task.delete_original_index_at }
- if @elasticsearch_reindexing_task = link_to _('Cancel index deletion'), admin_elasticsearch_cancel_index_deletion_path(task_id: task.id), class: 'gl-mb-2', method: :post
%h5= _('Reindexing Status: %{status}') % { status: @elasticsearch_reindexing_task.state } - if @elasticsearch_reindexing_task
- if @elasticsearch_reindexing_task.error_message %h5= _('Reindexing Status: %{status}') % { status: @elasticsearch_reindexing_task.state }
%p= _('Error: %{error_message}') % { error_message: @elasticsearch_reindexing_task.error_message } - if @elasticsearch_reindexing_task.error_message
- @elasticsearch_reindexing_task.subtasks.each do |subtask| %p= _('Error: %{error_message}') % { error_message: @elasticsearch_reindexing_task.error_message }
.card-body.form-group - @elasticsearch_reindexing_task.subtasks.each do |subtask|
%h5= subtask.alias_name .gl-card-body.form-group
- expected_documents = subtask.documents_count %h5= subtask.alias_name
- if subtask.elastic_task - expected_documents = subtask.documents_count
%p= _('Task ID: %{elastic_task}') % { elastic_task: subtask.elastic_task } - if subtask.elastic_task
- if expected_documents %p= _('Task ID: %{elastic_task}') % { elastic_task: subtask.elastic_task }
- processed_documents = subtask.documents_count_target - if expected_documents
%p= _('Expected documents: %{expected_documents}') % { expected_documents: expected_documents } - processed_documents = subtask.documents_count_target
- if processed_documents && expected_documents %p= _('Expected documents: %{expected_documents}') % { expected_documents: expected_documents }
- percentage = ((processed_documents / expected_documents.to_f) * 100).round(2) - if processed_documents && expected_documents
%p= _('Documents reindexed: %{processed_documents} (%{percentage}%%)') % { processed_documents: processed_documents, percentage: percentage } - percentage = ((processed_documents / expected_documents.to_f) * 100).round(2)
.progress %p= _('Documents reindexed: %{processed_documents} (%{percentage}%%)') % { processed_documents: processed_documents, percentage: percentage }
.progress-bar{ "aria-valuemax" => "100", "aria-valuemin" => "0", "aria-valuenow" => percentage, :role => "progressbar", :style => "width: #{percentage}%" } .progress
.progress-bar{ "aria-valuemax" => "100", "aria-valuemin" => "0", "aria-valuenow" => percentage, :role => "progressbar", :style => "width: #{percentage}%" }
.sub-section
%h4= _('Elasticsearch indexing restrictions') .gl-card.gl-bg-gray-10.gl-mb-6
.form-group .gl-card-body
.form-check %h4= _('Elasticsearch indexing restrictions')
= f.check_box :elasticsearch_limit_indexing, class: 'form-check-input js-limit-checkbox' .form-group
= f.label :elasticsearch_limit_indexing, class: 'form-check-label' do .form-check
= _('Limit namespaces and projects that can be indexed') = f.check_box :elasticsearch_limit_indexing, class: 'form-check-input js-limit-checkbox'
= f.label :elasticsearch_limit_indexing, class: 'form-check-label' do
.form-group.js-limit-namespaces{ class: ('hidden' unless @application_setting.elasticsearch_limit_indexing) } = _('Limit namespaces and projects that can be indexed')
= f.label :elasticsearch_namespace_ids, _('Namespaces to index'), class: 'label-bold'
- if elasticsearch_too_many_namespaces? .form-group.js-limit-namespaces{ class: ('hidden' unless @application_setting.elasticsearch_limit_indexing) }
%p= _('Too many namespaces enabled. You will need to manage them via the console or the API.') = f.label :elasticsearch_namespace_ids, _('Namespaces to index'), class: 'label-bold'
- else - if elasticsearch_too_many_namespaces?
= f.text_field :elasticsearch_namespace_ids, class: 'js-elasticsearch-namespaces', value: elasticsearch_namespace_ids, data: { selected: elasticsearch_objects_options(@application_setting.elasticsearch_limited_namespaces(true)).to_json } %p= _('Too many namespaces enabled. You will need to manage them via the console or the API.')
- else
.form-group.js-limit-projects{ class: ('hidden' unless @application_setting.elasticsearch_limit_indexing) } = f.text_field :elasticsearch_namespace_ids, class: 'js-elasticsearch-namespaces', value: elasticsearch_namespace_ids, data: { selected: elasticsearch_objects_options(@application_setting.elasticsearch_limited_namespaces(true)).to_json }
= f.label :elasticsearch_project_ids, _('Projects to index'), class: 'label-bold'
- if elasticsearch_too_many_projects? .form-group.js-limit-projects{ class: ('hidden' unless @application_setting.elasticsearch_limit_indexing) }
%p= _('Too many projects enabled. You will need to manage them via the console or the API.') = f.label :elasticsearch_project_ids, _('Projects to index'), class: 'label-bold'
- else - if elasticsearch_too_many_projects?
= f.text_field :elasticsearch_project_ids, class: 'js-elasticsearch-projects', value: elasticsearch_project_ids, data: { selected: elasticsearch_objects_options(@application_setting.elasticsearch_limited_projects(true)).to_json } %p= _('Too many projects enabled. You will need to manage them via the console or the API.')
- else
.sub-section = f.text_field :elasticsearch_project_ids, class: 'js-elasticsearch-projects', value: elasticsearch_project_ids, data: { selected: elasticsearch_objects_options(@application_setting.elasticsearch_limited_projects(true)).to_json }
%h4= _('Custom analyzers: language support')
%h5 .gl-card.gl-bg-gray-10.gl-mb-6
= _('Chinese language support using') .gl-card-body
%a{ href: 'https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-smartcn.html' } %h4= _('Custom analyzers: language support')
= _('smartcn custom analyzer') %h5
.form-group = _('Chinese language support using')
.form-check %a{ href: 'https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-smartcn.html' }
= f.check_box :elasticsearch_analyzers_smartcn_enabled, class: 'form-check-input' = _('smartcn custom analyzer')
= f.label :elasticsearch_analyzers_smartcn_enabled, class: 'form-check-label' do .form-group
= _('Enable smartcn custom analyzer: Indexing') .form-check
.form-group = f.check_box :elasticsearch_analyzers_smartcn_enabled, class: 'form-check-input'
.form-check = f.label :elasticsearch_analyzers_smartcn_enabled, class: 'form-check-label' do
= f.check_box :elasticsearch_analyzers_smartcn_search, class: 'form-check-input', disabled: !Gitlab::CurrentSettings.elasticsearch_analyzers_smartcn_enabled? = _('Enable smartcn custom analyzer: Indexing')
= f.label :elasticsearch_analyzers_smartcn_search, class: 'form-check-label' do .form-group
= _('Enable smartcn custom analyzer: Search') .form-check
.form-text.gl-text-gray-600 = f.check_box :elasticsearch_analyzers_smartcn_search, class: 'form-check-input', disabled: !Gitlab::CurrentSettings.elasticsearch_analyzers_smartcn_enabled?
= _('Please only enable search after installing the plugin, enabling indexing and recreating the index') = f.label :elasticsearch_analyzers_smartcn_search, class: 'form-check-label' do
%h5 = _('Enable smartcn custom analyzer: Search')
= _('Japanese language support using') .form-text.gl-text-gray-600
%a{ href: 'https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-kuromoji.html' } = _('Please only enable search after installing the plugin, enabling indexing and recreating the index')
= _('kuromoji custom analyzer') %h5
.form-group = _('Japanese language support using')
.form-check %a{ href: 'https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-kuromoji.html' }
= f.check_box :elasticsearch_analyzers_kuromoji_enabled, class: 'form-check-input' = _('kuromoji custom analyzer')
= f.label :elasticsearch_analyzers_kuromoji_enabled, class: 'form-check-label' do .form-group
= _('Enable kuromoji custom analyzer: Indexing') .form-check
.form-group = f.check_box :elasticsearch_analyzers_kuromoji_enabled, class: 'form-check-input'
.form-check = f.label :elasticsearch_analyzers_kuromoji_enabled, class: 'form-check-label' do
= f.check_box :elasticsearch_analyzers_kuromoji_search, class: 'form-check-input', disabled: !Gitlab::CurrentSettings.elasticsearch_analyzers_kuromoji_enabled? = _('Enable kuromoji custom analyzer: Indexing')
= f.label :elasticsearch_analyzers_kuromoji_search, class: 'form-check-label' do .form-group
= _('Enable kuromoji custom analyzer: Search') .form-check
.form-text.gl-text-gray-600 = f.check_box :elasticsearch_analyzers_kuromoji_search, class: 'form-check-input', disabled: !Gitlab::CurrentSettings.elasticsearch_analyzers_kuromoji_enabled?
= _('Please only enable search after installing the plugin, enabling indexing and recreating the index') = f.label :elasticsearch_analyzers_kuromoji_search, class: 'form-check-label' do
= _('Enable kuromoji custom analyzer: Search')
.sub-section .form-text.gl-text-gray-600
%h4= _('Elasticsearch AWS IAM credentials') = _('Please only enable search after installing the plugin, enabling indexing and recreating the index')
.form-group
.form-check .gl-card.gl-bg-gray-10.gl-mb-6
= f.check_box :elasticsearch_aws, class: 'form-check-input' .gl-card-body
= f.label :elasticsearch_aws, class: 'form-check-label' do %h4= _('Elasticsearch AWS IAM credentials')
Using AWS hosted Elasticsearch with IAM credentials .form-group
.form-group .form-check
= f.label :elasticsearch_aws_region, 'AWS region', class: 'label-bold' = f.check_box :elasticsearch_aws, class: 'form-check-input'
= f.text_field :elasticsearch_aws_region, value: @application_setting.elasticsearch_aws_region, class: 'form-control gl-form-input' = f.label :elasticsearch_aws, class: 'form-check-label' do
.form-text.text-muted Using AWS hosted Elasticsearch with IAM credentials
= _('Region that Elasticsearch is configured') .form-group
= f.label :elasticsearch_aws_region, 'AWS region', class: 'label-bold'
.form-group = f.text_field :elasticsearch_aws_region, value: @application_setting.elasticsearch_aws_region, class: 'form-control gl-form-input'
= f.label :elasticsearch_aws_access_key, _('AWS Access Key'), class: 'label-bold' .form-text.text-muted
= f.text_field :elasticsearch_aws_access_key, value: @application_setting.elasticsearch_aws_access_key, class: 'form-control gl-form-input' = _('Region that Elasticsearch is configured')
.form-text.text-muted
= _('AWS Access Key. Only required if not using role instance credentials') .form-group
= f.label :elasticsearch_aws_access_key, _('AWS Access Key'), class: 'label-bold'
- secret_access_key_label = @application_setting.elasticsearch_aws_secret_access_key.present? ? _('Enter new AWS Secret Access Key') : _('AWS Secret Access Key') = f.text_field :elasticsearch_aws_access_key, value: @application_setting.elasticsearch_aws_access_key, class: 'form-control gl-form-input'
.form-group .form-text.text-muted
= f.label :elasticsearch_aws_secret_access_key, secret_access_key_label, class: 'label-bold' = _('AWS Access Key. Only required if not using role instance credentials')
= f.password_field :elasticsearch_aws_secret_access_key, autocomplete: 'new-password', class: 'form-control gl-form-input'
.form-text.text-muted - secret_access_key_label = @application_setting.elasticsearch_aws_secret_access_key.present? ? _('Enter new AWS Secret Access Key') : _('AWS Secret Access Key')
= _('AWS Secret Access Key. Only required if not using role instance credentials') .form-group
= f.label :elasticsearch_aws_secret_access_key, secret_access_key_label, class: 'label-bold'
= f.password_field :elasticsearch_aws_secret_access_key, autocomplete: 'new-password', class: 'form-control gl-form-input'
.form-text.text-muted
= _('AWS Secret Access Key. Only required if not using role instance credentials')
= f.submit _('Save changes'), class: "gl-button btn btn-success", data: { qa_selector: 'submit_button' } = f.submit _('Save changes'), class: "gl-button btn btn-success", data: { qa_selector: 'submit_button' }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment