diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-20 14:34:42 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-20 14:34:42 +0000 |
commit | 9f46488805e86b1bc341ea1620b866016c2ce5ed (patch) | |
tree | f9748c7e287041e37d6da49e0a29c9511dc34768 /app/views/shared | |
parent | dfc92d081ea0332d69c8aca2f0e745cb48ae5e6d (diff) | |
download | gitlab-ce-9f46488805e86b1bc341ea1620b866016c2ce5ed.tar.gz |
Add latest changes from gitlab-org/gitlab@13-0-stable-ee
Diffstat (limited to 'app/views/shared')
58 files changed, 281 insertions, 242 deletions
diff --git a/app/views/shared/_auto_devops_callout.html.haml b/app/views/shared/_auto_devops_callout.html.haml index 128508e954e..bf1683be32d 100644 --- a/app/views/shared/_auto_devops_callout.html.haml +++ b/app/views/shared/_auto_devops_callout.html.haml @@ -11,5 +11,5 @@ = link_to s_('AutoDevOps|Enable in settings'), project_settings_ci_cd_path(@project, anchor: 'autodevops-settings'), class: 'btn btn-md new-gl-button js-close-callout' %button.gl-banner-close.close.js-close-callout{ type: 'button', - 'aria-label' => 'Dismiss Auto DevOps box' } + 'aria-label' => s_('AutoDevOps|Dismiss Auto DevOps box') } = icon('times', class: 'dismiss-icon', 'aria-hidden' => 'true') diff --git a/app/views/shared/_broadcast_message.html.haml b/app/views/shared/_broadcast_message.html.haml index bc4db672938..b809696cccb 100644 --- a/app/views/shared/_broadcast_message.html.haml +++ b/app/views/shared/_broadcast_message.html.haml @@ -6,5 +6,5 @@ = render_broadcast_message(message) .flex-grow-1.text-right{ style: 'flex-basis: 0' } - if (message.notification? || message.dismissable?) && opts[:preview].blank? - %button.broadcast-message-dismiss.js-dismiss-current-broadcast-notification.btn.btn-link.pl-2.pr-2{ 'aria-label' => _('Close'), :type => 'button', data: { id: message.id } } + %button.broadcast-message-dismiss.js-dismiss-current-broadcast-notification.btn.btn-link.pl-2.pr-2{ 'aria-label' => _('Close'), :type => 'button', data: { id: message.id, expire_date: message.ends_at.iso8601 } } %i.fa.fa-times diff --git a/app/views/shared/_clone_panel.html.haml b/app/views/shared/_clone_panel.html.haml index 3e805189055..9ec8d3c18cd 100644 --- a/app/views/shared/_clone_panel.html.haml +++ b/app/views/shared/_clone_panel.html.haml @@ -18,7 +18,7 @@ = http_clone_button(project) = render_if_exists 'shared/kerberos_clone_button', project: project - = text_field_tag :project_clone, default_url_to_repo(project), class: "js-select-on-focus form-control", readonly: true, aria: { label: 'Project clone URL' } + = text_field_tag :project_clone, default_url_to_repo(project), class: "js-select-on-focus form-control", readonly: true, aria: { label: _('Project clone URL') } .input-group-append = clipboard_button(target: '#project_clone', title: _("Copy URL"), class: "input-group-text btn-default btn-clipboard") diff --git a/app/views/shared/_commit_message_container.html.haml b/app/views/shared/_commit_message_container.html.haml index 68c14c307ac..d65b7492690 100644 --- a/app/views/shared/_commit_message_container.html.haml +++ b/app/views/shared/_commit_message_container.html.haml @@ -14,12 +14,11 @@ id: "commit_message-#{nonce}" - if local_assigns[:hint] %p.hint - Try to keep the first line under 52 characters - and the others under 72. + = _('Try to keep the first line under 52 characters and the others under 72.') - if descriptions.present? .hint.js-with-description-hint = link_to "#", class: "js-with-description-link" do - Include description in commit message + = _('Include description in commit message') .hint.js-without-description-hint.hide = link_to "#", class: "js-without-description-link" do - Don't include description in commit message + = _("Don't include description in commit message") diff --git a/app/views/shared/_delete_label_modal.html.haml b/app/views/shared/_delete_label_modal.html.haml index c6629cd33a5..25c841d2344 100644 --- a/app/views/shared/_delete_label_modal.html.haml +++ b/app/views/shared/_delete_label_modal.html.haml @@ -2,20 +2,19 @@ .modal-dialog .modal-content .modal-header - %h3.page-title Delete label: #{label.name} ? + %h3.page-title= _('Delete label: %{label_name} ?') % { label_name: label.name } %button.close{ type: "button", "data-dismiss": "modal", "aria-label" => _('Close') } %span{ "aria-hidden": true } × .modal-body %p - %strong= label.name - %span will be permanently deleted from #{label.subject_name}. This cannot be undone. + = _('<strong>%{label_name}</strong> <span>will be permanently deleted from %{subject_name}. This cannot be undone.</span>').html_safe % { label_name: label.name, subject_name: label.subject_name } .modal-footer - %a{ href: '#', data: { dismiss: 'modal' }, class: 'btn btn-default' } Cancel + %a{ href: '#', data: { dismiss: 'modal' }, class: 'btn btn-default' }= _('Cancel') - = link_to 'Delete label', + = link_to _('Delete label'), label.destroy_path, - title: 'Delete', + title: _('Delete'), method: :delete, class: 'btn btn-remove' diff --git a/app/views/shared/_field.html.haml b/app/views/shared/_field.html.haml index a7ad6d6f2c4..4f416c483f2 100644 --- a/app/views/shared/_field.html.haml +++ b/app/views/shared/_field.html.haml @@ -7,23 +7,22 @@ - choices = field[:choices] - default_choice = field[:default_choice] - help = field[:help] -- disabled = disable_fields_service?(@service) .form-group.row - if type == "password" && value.present? - = form.label name, "Enter new #{title.downcase}", class: "col-form-label col-sm-2" + = form.label name, _("Enter new %{field_title}") % { field_title: title.downcase }, class: "col-form-label col-sm-2" - else = form.label name, title, class: "col-form-label col-sm-2" .col-sm-10 - if type == 'text' - = form.text_field name, class: "form-control", placeholder: placeholder, required: required, disabled: disabled, data: { qa_selector: "#{name.downcase.gsub('\s', '')}_field" } + = form.text_field name, class: "form-control", placeholder: placeholder, required: required, data: { qa_selector: "#{name.downcase.gsub('\s', '')}_field" } - elsif type == 'textarea' - = form.text_area name, rows: 5, class: "form-control", placeholder: placeholder, required: required, disabled: disabled + = form.text_area name, rows: 5, class: "form-control", placeholder: placeholder, required: required - elsif type == 'checkbox' - = form.check_box name, disabled: disabled + = form.check_box name - elsif type == 'select' - = form.select name, options_for_select(choices, value ? value : default_choice), {}, { class: "form-control", disabled: disabled} + = form.select name, options_for_select(choices, value ? value : default_choice), {}, { class: "form-control"} - elsif type == 'password' - = form.password_field name, autocomplete: "new-password", placeholder: placeholder, class: "form-control", required: value.blank? && required, disabled: disabled, data: { qa_selector: "#{name.downcase.gsub('\s', '')}_field" } + = form.password_field name, autocomplete: "new-password", placeholder: placeholder, class: "form-control", required: value.blank? && required, data: { qa_selector: "#{name.downcase.gsub('\s', '')}_field" } - if help %span.form-text.text-muted= help diff --git a/app/views/shared/_group_form.html.haml b/app/views/shared/_group_form.html.haml index 9a65981ed58..019b2ef89a4 100644 --- a/app/views/shared/_group_form.html.haml +++ b/app/views/shared/_group_form.html.haml @@ -6,7 +6,7 @@ .form-group.group-name-holder.col-sm-12 = f.label :name, class: 'label-bold' do = _("Group name") - = f.text_field :name, placeholder: 'My Awesome Group', class: 'form-control input-lg', + = f.text_field :name, placeholder: _('My Awesome Group'), class: 'form-control input-lg', required: true, title: _('Please fill in a descriptive name for your group.'), autofocus: true @@ -22,7 +22,7 @@ - if parent %strong= parent.full_path + '/' = f.hidden_field :parent_id - = f.text_field :path, placeholder: 'my-awesome-group', class: 'form-control js-validate-group-path', + = f.text_field :path, placeholder: _('my-awesome-group'), class: 'form-control js-validate-group-path', autofocus: local_assigns[:autofocus] || false, required: true, pattern: Gitlab::PathRegex::NAMESPACE_FORMAT_REGEX_JS, title: _('Please choose a group URL with no special characters.'), diff --git a/app/views/shared/_group_tips.html.haml b/app/views/shared/_group_tips.html.haml index 46e4340511a..2d7f8e36139 100644 --- a/app/views/shared/_group_tips.html.haml +++ b/app/views/shared/_group_tips.html.haml @@ -1,5 +1,5 @@ %ul - %li A group is a collection of several projects - %li Members of a group may only view projects they have permission to access - %li Group project URLs are prefixed with the group namespace - %li Existing projects may be moved into a group + %li= _('A group is a collection of several projects') + %li= _('Members of a group may only view projects they have permission to access') + %li= _('Group project URLs are prefixed with the group namespace') + %li= _('Existing projects may be moved into a group') diff --git a/app/views/shared/_label_row.html.haml b/app/views/shared/_label_row.html.haml index b05d903fabe..cd303dd7a3d 100644 --- a/app/views/shared/_label_row.html.haml +++ b/app/views/shared/_label_row.html.haml @@ -13,7 +13,7 @@ %ul.label-links - if show_label_issues_link %li.label-link-item.inline - = link_to_label(label) { 'Issues' } + = link_to_label(label) { _('Issues') } - if show_label_merge_requests_link · %li.label-link-item.inline diff --git a/app/views/shared/_milestone_expired.html.haml b/app/views/shared/_milestone_expired.html.haml index 099e3ac8462..48a97a18ca9 100644 --- a/app/views/shared/_milestone_expired.html.haml +++ b/app/views/shared/_milestone_expired.html.haml @@ -1,6 +1,6 @@ - if milestone.expired? and not milestone.closed? - .status-box.status-box-expired.append-bottom-5 Expired + .status-box.status-box-expired.append-bottom-5= _('Expired') - if milestone.upcoming? - .status-box.status-box-mr-merged.append-bottom-5 Upcoming + .status-box.status-box-mr-merged.append-bottom-5= _('Upcoming') - if milestone.closed? - .status-box.status-box-closed.append-bottom-5 Closed + .status-box.status-box-closed.append-bottom-5= _('Closed') diff --git a/app/views/shared/_milestones_filter.html.haml b/app/views/shared/_milestones_filter.html.haml index 6c1ac20d544..eb50960202a 100644 --- a/app/views/shared/_milestones_filter.html.haml +++ b/app/views/shared/_milestones_filter.html.haml @@ -1,13 +1,13 @@ %ul.nav-links.mobile-separator.nav.nav-tabs %li{ class: milestone_class_for_state(params[:state], 'opened', true) }> = link_to milestones_filter_path(state: 'opened') do - Open + = _('Open') %span.badge.badge-pill= counts[:opened] %li{ class: milestone_class_for_state(params[:state], 'closed') }> = link_to milestones_filter_path(state: 'closed', sort: 'due_date_desc') do - Closed + = _('Closed') %span.badge.badge-pill= counts[:closed] %li{ class: milestone_class_for_state(params[:state], 'all') }> = link_to milestones_filter_path(state: 'all', sort: 'due_date_desc') do - All + = _('All') %span.badge.badge-pill= counts[:all] diff --git a/app/views/shared/_mini_pipeline_graph.html.haml b/app/views/shared/_mini_pipeline_graph.html.haml index a1f21c2a83e..172f3d85472 100644 --- a/app/views/shared/_mini_pipeline_graph.html.haml +++ b/app/views/shared/_mini_pipeline_graph.html.haml @@ -14,4 +14,4 @@ %li.js-builds-dropdown-loading.hidden .loading-container.text-center - %span.spinner{ 'aria-label': 'Loading' } + %span.spinner{ 'aria-label': _('Loading') } diff --git a/app/views/shared/_no_ssh.html.haml b/app/views/shared/_no_ssh.html.haml index fbfd4d0e9a9..2b04e3e1c98 100644 --- a/app/views/shared/_no_ssh.html.haml +++ b/app/views/shared/_no_ssh.html.haml @@ -1,7 +1,7 @@ - if show_no_ssh_key_message? %div{ class: 'no-ssh-key-message gl-alert gl-alert-warning', role: 'alert' } = sprite_icon('warning', size: 16, css_class: 'gl-icon s16 gl-alert-icon gl-alert-icon-no-title') - %button{ class: 'gl-alert-dismiss hide-no-ssh-message', type: 'button', 'aria-label': 'Dismiss' } + %button{ class: 'gl-alert-dismiss hide-no-ssh-message', type: 'button', 'aria-label': _('Dismiss') } = sprite_icon('close', size: 16, css_class: 'gl-icon s16') .gl-alert-body = s_("MissingSSHKeyWarningLink|You won't be able to pull or push project code via SSH until you add an SSH key to your profile").html_safe diff --git a/app/views/shared/_personal_access_tokens_created_container.html.haml b/app/views/shared/_personal_access_tokens_created_container.html.haml deleted file mode 100644 index df4577e2862..00000000000 --- a/app/views/shared/_personal_access_tokens_created_container.html.haml +++ /dev/null @@ -1,15 +0,0 @@ -- container_title = local_assigns.fetch(:container_title, _('Your New Personal Access Token')) -- clipboard_button_title = local_assigns.fetch(:clipboard_button_title, _('Copy personal access token')) - -.created-personal-access-token-container - %h5.prepend-top-0 - = container_title - .form-group - .input-group - = text_field_tag 'created-personal-access-token', new_token_value, readonly: true, class: "qa-created-personal-access-token form-control js-select-on-focus", 'aria-describedby' => "created-token-help-block" - %span.input-group-append - = clipboard_button(text: new_token_value, title: clipboard_button_title, placement: "left", class: "input-group-text btn-default btn-clipboard") - %span#created-token-help-block.form-text.text-muted.text-danger - = _("Make sure you save it - you won't be able to access it again.") - -%hr diff --git a/app/views/shared/_personal_access_tokens_form.html.haml b/app/views/shared/_personal_access_tokens_form.html.haml deleted file mode 100644 index 71f3447ebc7..00000000000 --- a/app/views/shared/_personal_access_tokens_form.html.haml +++ /dev/null @@ -1,31 +0,0 @@ -- type = impersonation ? s_('Profiles|impersonation') : s_('Profiles|personal access') - -%h5.prepend-top-0 - = _('Add a %{type} token') % { type: type } -%p.profile-settings-content - = _("Pick a name for the application, and we'll give you a unique %{type} token.") % { type: type } - -= form_for token, url: path, method: :post, html: { class: 'js-requires-input' } do |f| - - = form_errors(token) - - .row - .form-group.col-md-6 - = f.label :name, _('Name'), class: 'label-bold' - = f.text_field :name, class: "form-control", required: true, data: { qa_selector: 'personal_access_token_name_field' } - - .row - .form-group.col-md-6 - = f.label :expires_at, _('Expires at'), class: 'label-bold' - .input-icon-wrapper - - = render_if_exists 'personal_access_tokens/callout_max_personal_access_token_lifetime' - - = f.text_field :expires_at, class: "datepicker form-control", placeholder: 'YYYY-MM-DD', data: { qa_selector: 'expiry_date_field' } - - .form-group - = f.label :scopes, _('Scopes'), class: 'label-bold' - = render 'shared/tokens/scopes_form', prefix: 'personal_access_token', token: token, scopes: scopes - - .prepend-top-default - = f.submit _('Create %{type} token') % { type: type }, class: "btn btn-success", data: { qa_selector: 'create_token_button' } diff --git a/app/views/shared/_project_limit.html.haml b/app/views/shared/_project_limit.html.haml index 2c52eccccb6..88f213612fc 100644 --- a/app/views/shared/_project_limit.html.haml +++ b/app/views/shared/_project_limit.html.haml @@ -1,8 +1,8 @@ - if cookies[:hide_project_limit_message].blank? && !current_user.hide_project_limit && !current_user.can_create_project? && current_user.projects_limit > 0 .project-limit-message.alert.alert-warning.d-none.d-sm-block - You won't be able to create new projects because you have reached your project limit. + = _("You won't be able to create new projects because you have reached your project limit.") .float-right - = link_to "Don't show again", profile_path(user: {hide_project_limit: true}), method: :put, class: 'alert-link' + = link_to _("Don't show again"), profile_path(user: {hide_project_limit: true}), method: :put, class: 'alert-link' | - = link_to 'Remind later', '#', class: 'hide-project-limit-message alert-link' + = link_to _('Remind later'), '#', class: 'hide-project-limit-message alert-link' diff --git a/app/views/shared/_recaptcha_form.html.haml b/app/views/shared/_recaptcha_form.html.haml index 10f358402c1..245a86721eb 100644 --- a/app/views/shared/_recaptcha_form.html.haml +++ b/app/views/shared/_recaptcha_form.html.haml @@ -17,4 +17,4 @@ - if has_submit .row-content-block.footer-block - = f.submit "Submit #{humanized_resource_name}", class: 'btn btn-success' + = f.submit _("Submit %{humanized_resource_name}") % { humanized_resource_name: humanized_resource_name }, class: 'btn btn-success' diff --git a/app/views/shared/_ref_dropdown.html.haml b/app/views/shared/_ref_dropdown.html.haml index 8b2a3bee407..ee2b2a17e21 100644 --- a/app/views/shared/_ref_dropdown.html.haml +++ b/app/views/shared/_ref_dropdown.html.haml @@ -1,7 +1,7 @@ - dropdown_class = local_assigns.fetch(:dropdown_class, '') .dropdown-menu.dropdown-menu-selectable.git-revision-dropdown{ class: dropdown_class } - = dropdown_title "Select Git revision" - = dropdown_filter "Filter by Git revision" + = dropdown_title _('Select Git revision') + = dropdown_filter _('Filter by Git revision') = dropdown_content = dropdown_loading diff --git a/app/views/shared/_service_settings.html.haml b/app/views/shared/_service_settings.html.haml index 3da4b77b5eb..a9203459914 100644 --- a/app/views/shared/_service_settings.html.haml +++ b/app/views/shared/_service_settings.html.haml @@ -1,4 +1,5 @@ = form_errors(@service) +- trigger_events = Feature.enabled?(:integration_form_refactor) ? ServiceEventSerializer.new(service: @service).represent(@service.configurable_events).to_json : [] - if lookup_context.template_exists?('help', "projects/services/#{@service.to_param}", true) = render "projects/services/#{@service.to_param}/help", subject: @service @@ -8,9 +9,10 @@ = markdown @service.help .service-settings - .js-vue-integration-settings{ data: { show_active: @service.show_active_box?.to_s, activated: (@service.active || @service.new_record?).to_s, disabled: disable_fields_service?(@service).to_s } } + .js-vue-integration-settings{ data: { show_active: @service.show_active_box?.to_s, activated: (@service.active || @service.new_record?).to_s, type: @service.to_param, merge_request_events: @service.merge_requests_events.to_s, +commit_events: @service.commit_events.to_s, enable_comments: @service.comment_on_event_enabled.to_s, comment_detail: @service.comment_detail, trigger_events: trigger_events } } - - if @service.configurable_events.present? + - if @service.configurable_events.present? && !@service.is_a?(JiraService) && Feature.disabled?(:integration_form_refactor) .form-group.row %label.col-form-label.col-sm-2= _('Trigger') @@ -31,32 +33,5 @@ %p.text-muted = @service.class.event_description(event) - - if @service.configurable_event_actions.present? - .form-group.row - %label.col-form-label.col-sm-2= _('Event Actions') - - .col-sm-10 - - @service.configurable_event_actions.each do |action| - .form-group - .form-check - = form.check_box service_event_action_field_name(action), class: 'form-check-input' - = form.label service_event_action_field_name(action), class: 'form-check-label' do - %strong - = event_action_description(action) - - %p.text-muted - = event_action_description(action) - - @service.global_fields.each do |field| - - type = field[:type] - - - if type == 'fieldset' - - fields = field[:fields] - - legend = field[:legend] - - %fieldset - %legend= legend - - fields.each do |subfield| - = render 'shared/field', form: form, field: subfield - - else - = render 'shared/field', form: form, field: field + = render 'shared/field', form: form, field: field diff --git a/app/views/shared/access_tokens/_created_container.html.haml b/app/views/shared/access_tokens/_created_container.html.haml new file mode 100644 index 00000000000..f11ef1e01de --- /dev/null +++ b/app/views/shared/access_tokens/_created_container.html.haml @@ -0,0 +1,12 @@ +.created-personal-access-token-container + %h5.prepend-top-0 + = _('Your new %{type}') % { type: type } + .form-group + .input-group + = text_field_tag 'created-personal-access-token', new_token_value, readonly: true, class: 'qa-created-access-token form-control js-select-on-focus', 'aria-describedby' => 'created-token-help-block' + %span.input-group-append + = clipboard_button(text: new_token_value, title: _('Copy %{type}') % { type: type }, placement: 'left', class: 'input-group-text btn-default btn-clipboard') + %span#created-token-help-block.form-text.text-muted.text-danger + = _("Make sure you save it - you won't be able to access it again.") + +%hr diff --git a/app/views/shared/access_tokens/_form.html.haml b/app/views/shared/access_tokens/_form.html.haml new file mode 100644 index 00000000000..cb7f907308f --- /dev/null +++ b/app/views/shared/access_tokens/_form.html.haml @@ -0,0 +1,34 @@ +- title = local_assigns.fetch(:title, _('Add a %{type}') % { type: type }) +- prefix = local_assigns.fetch(:prefix, :personal_access_token) + +%h5.prepend-top-0 + = title +%p.profile-settings-content + = _("Enter the name of your application, and we'll return a unique %{type}.") % { type: type } + += form_for token, as: prefix, url: path, method: :post, html: { class: 'js-requires-input' } do |f| + + = form_errors(token) + + .row + .form-group.col-md-6 + = f.label :name, _('Name'), class: 'label-bold' + = f.text_field :name, class: 'form-control', required: true, data: { qa_selector: 'access_token_name_field' } + + .row + .form-group.col-md-6 + = f.label :expires_at, _('Expires at'), class: 'label-bold' + .input-icon-wrapper + + = render_if_exists 'personal_access_tokens/callout_max_personal_access_token_lifetime' + + .js-access-tokens-expires-at + %expires-at-field + = f.text_field :expires_at, class: 'datepicker form-control gl-datepicker-input', placeholder: 'YYYY-MM-DD', autocomplete: 'off', inputmode: 'none', data: { qa_selector: 'expiry_date_field' } + + .form-group + = f.label :scopes, _('Scopes'), class: 'label-bold' + = render 'shared/tokens/scopes_form', prefix: prefix, token: token, scopes: scopes + + .prepend-top-default + = f.submit _('Create %{type}') % { type: type }, class: 'btn btn-success', data: { qa_selector: 'create_token_button' } diff --git a/app/views/shared/_personal_access_tokens_table.html.haml b/app/views/shared/access_tokens/_table.html.haml index 823117f37ca..5518c31cb06 100644 --- a/app/views/shared/_personal_access_tokens_table.html.haml +++ b/app/views/shared/access_tokens/_table.html.haml @@ -1,8 +1,10 @@ -- type = impersonation ? s_('Profiles|Impersonation') : s_('Profiles|Personal Access') +- no_active_tokens_message = local_assigns.fetch(:no_active_tokens_message, _('This user has no active %{type}.') % { type: type_plural }) +- impersonation = local_assigns.fetch(:impersonation, false) + %hr %h5 - = _('Active %{type} Tokens (%{token_length})') % { type: type, token_length: active_tokens.length } + = _('Active %{type} (%{token_length})') % { type: type_plural, token_length: active_tokens.length } - if impersonation %p.profile-settings-content = _("To see all the user's personal access tokens you must impersonate them first.") @@ -25,12 +27,11 @@ %td - if token.expires? %span{ class: ('text-warning' if token.expires_soon?) } - In #{distance_of_time_in_words_to_now(token.expires_at)} + = _('In %{time_to_now}') % { time_to_now: distance_of_time_in_words_to_now(token.expires_at) } - else %span.token-never-expires-label= _('Never') - %td= token.scopes.present? ? token.scopes.join(", ") : _('<no scopes selected>') - - path = impersonation ? revoke_admin_user_impersonation_token_path(token.user, token) : revoke_profile_personal_access_token_path(token) - %td= link_to _('Revoke'), path, method: :put, class: "btn btn-danger float-right qa-revoke-button", data: { confirm: _('Are you sure you want to revoke this %{type} Token? This action cannot be undone.') % { type: type } } + %td= token.scopes.present? ? token.scopes.join(', ') : _('<no scopes selected>') + %td= link_to _('Revoke'), revoke_route_helper.call(token), method: :put, class: 'btn btn-danger float-right qa-revoke-button', data: { confirm: _('Are you sure you want to revoke this %{type}? This action cannot be undone.') % { type: type } } - else .settings-message.text-center - = _('This user has no active %{type} Tokens.') % { type: type } + = no_active_tokens_message diff --git a/app/views/shared/boards/components/_board.html.haml b/app/views/shared/boards/components/_board.html.haml index ffb406ac35b..2a5b72d478a 100644 --- a/app/views/shared/boards/components/_board.html.haml +++ b/app/views/shared/boards/components/_board.html.haml @@ -38,8 +38,7 @@ ":description" => "list.label.description", "tooltipPlacement" => "bottom", ":size" => '(!list.isExpanded ? "sm" : "")', - ":scoped" => "showScopedLabels(list.label)", - ":scoped-labels-documentation-link" => "helpLink" } + ":scoped" => "showScopedLabels(list.label)" } - if can?(current_user, :admin_list, current_board_parent) %board-delete{ "inline-template" => true, diff --git a/app/views/shared/boards/components/sidebar/_labels.html.haml b/app/views/shared/boards/components/sidebar/_labels.html.haml index a1088dc5222..58ffa3942ef 100644 --- a/app/views/shared/boards/components/sidebar/_labels.html.haml +++ b/app/views/shared/boards/components/sidebar/_labels.html.haml @@ -12,8 +12,7 @@ ":background-color" => "label.color", ":title" => "label.title", ":description" => "label.description", - ":scoped" => "showScopedLabels(label)", - ":scoped-labels-documentation-link" => "helpLink" } + ":scoped" => "showScopedLabels(label)" } - if can_admin_issue? .selectbox diff --git a/app/views/shared/deploy_keys/_index.html.haml b/app/views/shared/deploy_keys/_index.html.haml new file mode 100644 index 00000000000..f28e745f4c5 --- /dev/null +++ b/app/views/shared/deploy_keys/_index.html.haml @@ -0,0 +1,14 @@ +- expanded = expanded_by_default? +%section.qa-deploy-keys-settings.settings.no-animate#js-deploy-keys-settings{ class: ('expanded' if expanded), data: { qa_selector: 'deploy_keys_settings' } } + .settings-header + %h4= _('Deploy Keys') + %button.btn.js-settings-toggle{ type: 'button' } + = expanded ? 'Collapse' : 'Expand' + %p + = _('Deploy keys allow read-only or read-write (if enabled) access to your repository. Deploy keys can be used for CI, staging or production servers. You can create a deploy key or add an existing one.') + .settings-content + %h5.prepend-top-0 + = _('Create a new deploy key for this project') + = render @deploy_keys.form_partial_path + %hr + #js-deploy-keys{ data: { endpoint: project_deploy_keys_path(@project), project_id: @project.id } } diff --git a/app/views/shared/deploy_keys/_project_group_form.html.haml b/app/views/shared/deploy_keys/_project_group_form.html.haml new file mode 100644 index 00000000000..8edd1d9deb8 --- /dev/null +++ b/app/views/shared/deploy_keys/_project_group_form.html.haml @@ -0,0 +1,24 @@ += form_for [@project.namespace.becomes(Namespace), @project, @deploy_keys.new_key], url: namespace_project_deploy_keys_path, html: { class: "js-requires-input container" } do |f| + = form_errors(@deploy_keys.new_key) + .form-group.row + = f.label :title, class: "label-bold" + = f.text_field :title, class: 'form-control', required: true + .form-group.row + = f.label :key, class: "label-bold" + = f.text_area :key, class: "form-control", rows: 5, required: true + .form-group.row + %p.light.append-bottom-0 + = _('Paste a machine public key here. Read more about how to generate it') + = link_to "here", help_page_path("ssh/README") + + = f.fields_for :deploy_keys_projects do |deploy_keys_project_form| + .form-group.row + = deploy_keys_project_form.label :can_push do + = deploy_keys_project_form.check_box :can_push + %strong= _('Write access allowed') + .form-group.row + %p.light.append-bottom-0 + = _('Allow this key to push to repository as well? (Default only allows pull access.)') + + .form-group.row + = f.submit "Add key", class: "btn-success btn" diff --git a/app/views/shared/deploy_tokens/_form.html.haml b/app/views/shared/deploy_tokens/_form.html.haml index 5751ed9cb7a..512644518fa 100644 --- a/app/views/shared/deploy_tokens/_form.html.haml +++ b/app/views/shared/deploy_tokens/_form.html.haml @@ -35,5 +35,15 @@ = label_tag ("deploy_token_write_registry"), 'write_registry', class: 'label-bold form-check-label' .text-secondary= s_('DeployTokens|Allows write access to the registry images') + %fieldset.form-group.form-check + = f.check_box :read_package_registry, class: 'form-check-input' + = label_tag ("deploy_token_read_package_registry"), 'read_package_registry', class: 'label-bold form-check-label' + .text-secondary= s_('DeployTokens|Allows read access to the package registry') + + %fieldset.form-group.form-check + = f.check_box :write_package_registry, class: 'form-check-input' + = label_tag ("deploy_token_write_package_registry"), 'write_package_registry', class: 'label-bold form-check-label' + .text-secondary= s_('DeployTokens|Allows write access to the package registry') + .prepend-top-default = f.submit s_('DeployTokens|Create deploy token'), class: 'btn btn-success qa-create-deploy-token' diff --git a/app/views/shared/file_hooks/_index.html.haml b/app/views/shared/file_hooks/_index.html.haml index 74eb6c94116..0e1f41bbbf6 100644 --- a/app/views/shared/file_hooks/_index.html.haml +++ b/app/views/shared/file_hooks/_index.html.haml @@ -19,6 +19,10 @@ %li .monospace = File.basename(file) + - if File.dirname(file).ends_with?('plugins') + .text-warning + = _('Plugins directory is deprecated and will be removed in 14.0. Please move this file into /file_hooks directory.') + - else .card.bg-light.text-center .nothing-here-block= _('No file hooks found.') diff --git a/app/views/shared/hook_logs/_content.html.haml b/app/views/shared/hook_logs/_content.html.haml index f3b56df0c96..6b056e93460 100644 --- a/app/views/shared/hook_logs/_content.html.haml +++ b/app/views/shared/hook_logs/_content.html.haml @@ -31,7 +31,7 @@ %h5 Request body: %pre :escaped - #{JSON.pretty_generate(hook_log.request_data)} + #{Gitlab::Json.pretty_generate(hook_log.request_data)} %h5 Response headers: %pre - hook_log.response_headers.each do |k,v| diff --git a/app/views/shared/integrations/_form.html.haml b/app/views/shared/integrations/_form.html.haml index 0ddab1368c2..4ec7f286c7a 100644 --- a/app/views/shared/integrations/_form.html.haml +++ b/app/views/shared/integrations/_form.html.haml @@ -10,5 +10,5 @@ - if integration.editable? .footer-block.row-content-block - = service_save_button(integration) + = service_save_button = link_to _('Cancel'), scoped_integration_path(integration), class: 'btn btn-cancel' diff --git a/app/views/shared/integrations/_integrations.html.haml b/app/views/shared/integrations/_index.html.haml index b2359aca016..2dbd612ea38 100644 --- a/app/views/shared/integrations/_integrations.html.haml +++ b/app/views/shared/integrations/_index.html.haml @@ -3,7 +3,7 @@ %col %col %col.d-none.d-sm-table-column - %col{ width: 120 } + %col{ width: 130 } %thead{ role: 'rowgroup' } %tr{ role: 'row' } %th{ role: 'columnheader', scope: 'col', 'aria-colindex': 1 } @@ -13,13 +13,14 @@ %tbody{ role: 'rowgroup' } - integrations.each do |integration| + - activated_label = (integration.activated? ? s_("ProjectService|%{service_title}: status on") : s_("ProjectService|%{service_title}: status off")) % { service_title: integration.title } %tr{ role: 'row' } - %td{ role: 'cell', 'aria-colindex': 1 } - = boolean_to_icon integration.activated? + %td{ role: 'cell', 'aria-colindex': 1, 'aria-label': activated_label } + = boolean_to_icon integration.operating? %td{ role: 'cell', 'aria-colindex': 2 } - = link_to scoped_edit_integration_path(integration) do + = link_to scoped_edit_integration_path(integration), { data: { qa_selector: "#{integration.to_param}_link" } } do %strong= integration.title - %td.d-none.d-sm-block{ role: 'cell', 'aria-colindex': 3 } + %td.d-none.d-sm-table-cell{ role: 'cell', 'aria-colindex': 3 } = integration.description %td{ role: 'cell', 'aria-colindex': 4 } - if integration.updated_at.present? diff --git a/app/views/shared/issuable/_bulk_update_sidebar.html.haml b/app/views/shared/issuable/_bulk_update_sidebar.html.haml index a05a13814ac..4bc6c1dee37 100644 --- a/app/views/shared/issuable/_bulk_update_sidebar.html.haml +++ b/app/views/shared/issuable/_bulk_update_sidebar.html.haml @@ -5,45 +5,49 @@ = form_tag [:bulk_update, @project.namespace.becomes(Namespace), @project, type], method: :post, class: "bulk-update" do .block.issuable-sidebar-header .filter-item.inline.update-issues-btn.float-left - = button_tag "Update all", class: "btn update-selected-issues btn-info", disabled: true - = button_tag "Cancel", class: "btn btn-default js-bulk-update-menu-hide float-right" + = button_tag _('Update all'), class: "btn update-selected-issues btn-info", disabled: true + = button_tag _('Cancel'), class: "btn btn-default js-bulk-update-menu-hide float-right" .block .title - Status + = _('Status') .filter-item - = dropdown_tag("Select status", options: { toggle_class: "js-issue-status", title: "Change status", dropdown_class: "dropdown-menu-status dropdown-menu-selectable", data: { field_name: "update[state_event]", default_label: "Status" } } ) do + = dropdown_tag(_("Select status"), options: { toggle_class: "js-issue-status", title: _("Change status"), dropdown_class: "dropdown-menu-status dropdown-menu-selectable", data: { field_name: "update[state_event]", default_label: _("Status") } } ) do %ul %li - %a{ href: "#", data: { id: "reopen" } } Open + %a{ href: "#", data: { id: "reopen" } } + = _('Open') %li - %a{ href: "#", data: { id: "close" } } Closed + %a{ href: "#", data: { id: "close" } } + = _('Closed') .block .title - Assignee + = _('Assignee') .filter-item - field_name = "update[assignee_ids][]" - = dropdown_tag("Select assignee", options: { toggle_class: "js-user-search js-update-assignee js-filter-submit js-filter-bulk-update", title: "Assign to", filter: true, dropdown_class: "dropdown-menu-user dropdown-menu-selectable", - placeholder: "Search authors", data: { first_user: (current_user.username if current_user), null_user: true, current_user: true, project_id: @project.id, field_name: field_name } }) + = dropdown_tag(_("Select assignee"), options: { toggle_class: "js-user-search js-update-assignee js-filter-submit js-filter-bulk-update", title: _("Assign to"), filter: true, dropdown_class: "dropdown-menu-user dropdown-menu-selectable", + placeholder: _("Search authors"), data: { first_user: (current_user.username if current_user), null_user: true, current_user: true, project_id: @project.id, field_name: field_name } }) .block .title - Milestone + = _('Milestone') .filter-item - = dropdown_tag("Select milestone", options: { title: "Assign milestone", toggle_class: "js-milestone-select js-extra-options js-filter-submit js-filter-bulk-update", filter: true, dropdown_class: "dropdown-menu-selectable dropdown-menu-milestone", placeholder: "Search milestones", data: { show_no: true, field_name: "update[milestone_id]", project_id: @project.id, milestones: project_milestones_path(@project, :json), use_id: true, default_label: "Milestone" } }) + = dropdown_tag(_("Select milestone"), options: { title: _("Assign milestone"), toggle_class: "js-milestone-select js-extra-options js-filter-submit js-filter-bulk-update", filter: true, dropdown_class: "dropdown-menu-selectable dropdown-menu-milestone", placeholder: _("Search milestones"), data: { show_no: true, field_name: "update[milestone_id]", project_id: @project.id, milestones: project_milestones_path(@project, :json), use_id: true, default_label: _("Milestone") } }) .block .title - Labels + = _('Labels') .filter-item.labels-filter - = render "shared/issuable/label_dropdown", classes: ["js-filter-bulk-update", "js-multiselect"], dropdown_title: "Apply a label", show_create: false, show_footer: false, extra_options: false, filter_submit: false, data_options: { persist_when_hide: "true", field_name: "update[label_ids][]", show_no: false, show_any: false, use_id: true, default_label: "Labels" }, label_name: "Select labels", no_default_styles: true + = render "shared/issuable/label_dropdown", classes: ["js-filter-bulk-update", "js-multiselect"], dropdown_title: _("Apply a label"), show_create: false, show_footer: false, extra_options: false, filter_submit: false, data_options: { persist_when_hide: "true", field_name: "update[label_ids][]", show_no: false, show_any: false, use_id: true, default_label: _("Labels") }, label_name: _("Select labels"), no_default_styles: true .block .title - Subscriptions + = _('Subscriptions') .filter-item - = dropdown_tag("Select subscription", options: { toggle_class: "js-subscription-event", title: "Change subscription", dropdown_class: "dropdown-menu-selectable", data: { field_name: "update[subscription_event]", default_label: "Subscription" } } ) do + = dropdown_tag(_("Select subscription"), options: { toggle_class: "js-subscription-event", title: _("Change subscription"), dropdown_class: "dropdown-menu-selectable", data: { field_name: "update[subscription_event]", default_label: _("Subscription") } } ) do %ul %li - %a{ href: "#", data: { id: "subscribe" } } Subscribe + %a{ href: "#", data: { id: "subscribe" } } + = _('Subscribe') %li - %a{ href: "#", data: { id: "unsubscribe" } } Unsubscribe + %a{ href: "#", data: { id: "unsubscribe" } } + = _('Unsubscribe') = hidden_field_tag "update[issuable_ids]", [] = hidden_field_tag :state_event, params[:state_event] diff --git a/app/views/shared/issuable/_close_reopen_button.html.haml b/app/views/shared/issuable/_close_reopen_button.html.haml index 2eb96a7bc9b..5f7cfdc9d03 100644 --- a/app/views/shared/issuable/_close_reopen_button.html.haml +++ b/app/views/shared/issuable/_close_reopen_button.html.haml @@ -2,17 +2,20 @@ - display_issuable_type = issuable_display_type(issuable) - button_method = issuable_close_reopen_button_method(issuable) - are_close_and_open_buttons_hidden = issuable_button_hidden?(issuable, true) && issuable_button_hidden?(issuable, false) +- add_blocked_class = false +- if defined? warn_before_close + - add_blocked_class = warn_before_close - if is_current_user - if can_update - = link_to "Close #{display_issuable_type}", close_issuable_path(issuable), method: button_method, - class: "d-none d-sm-none d-md-block btn btn-grouped btn-close js-btn-issue-action #{issuable_button_visibility(issuable, true)}", title: "Close #{display_issuable_type}", data: { qa_selector: 'close_issue_button' } + = link_to _("Close %{display_issuable_type}") % { display_issuable_type: display_issuable_type }, close_issuable_path(issuable), method: button_method, + class: "d-none d-sm-none d-md-block btn btn-grouped btn-close js-btn-issue-action #{issuable_button_visibility(issuable, true)} #{(add_blocked_class ? 'btn-issue-blocked' : '')}", title: _("Close %{display_issuable_type}") % { display_issuable_type: display_issuable_type }, data: { qa_selector: 'close_issue_button' } - if can_reopen - = link_to "Reopen #{display_issuable_type}", reopen_issuable_path(issuable), method: button_method, - class: "d-none d-sm-none d-md-block btn btn-grouped btn-reopen js-btn-issue-action #{issuable_button_visibility(issuable, false)}", title: "Reopen #{display_issuable_type}", data: { qa_selector: 'reopen_issue_button' } + = link_to _("Reopen %{display_issuable_type}") % { display_issuable_type: display_issuable_type }, reopen_issuable_path(issuable), method: button_method, + class: "d-none d-sm-none d-md-block btn btn-grouped btn-reopen js-btn-issue-action #{issuable_button_visibility(issuable, false)}", title: _("Reopen %{display_issuable_type}") % { display_issuable_type: display_issuable_type }, data: { qa_selector: 'reopen_issue_button' } - else - if can_update && !are_close_and_open_buttons_hidden - = render 'shared/issuable/close_reopen_report_toggle', issuable: issuable + = render 'shared/issuable/close_reopen_report_toggle', issuable: issuable, warn_before_close: add_blocked_class - else - = link_to 'Report abuse', new_abuse_report_path(user_id: issuable.author.id, ref_url: issuable_url(issuable)), - class: 'd-none d-sm-none d-md-block btn btn-grouped btn-close-color', title: 'Report abuse' + = link_to _('Report abuse'), new_abuse_report_path(user_id: issuable.author.id, ref_url: issuable_url(issuable)), + class: 'd-none d-sm-none d-md-block btn btn-grouped btn-close-color', title: _('Report abuse') diff --git a/app/views/shared/issuable/_close_reopen_report_toggle.html.haml b/app/views/shared/issuable/_close_reopen_report_toggle.html.haml index 0d59c9304b4..9d718083d2d 100644 --- a/app/views/shared/issuable/_close_reopen_report_toggle.html.haml +++ b/app/views/shared/issuable/_close_reopen_report_toggle.html.haml @@ -5,45 +5,46 @@ - button_class = "#{button_responsive_class} btn btn-grouped js-issuable-close-button js-btn-issue-action issuable-close-button" - toggle_class = "#{button_responsive_class} btn btn-nr dropdown-toggle js-issuable-close-toggle" - button_method = issuable_close_reopen_button_method(issuable) +- add_blocked_class = false +- if defined? warn_before_close + - add_blocked_class = !issuable.closed? && warn_before_close .float-left.btn-group.prepend-left-10.issuable-close-dropdown.droplab-dropdown.js-issuable-close-dropdown = link_to "#{display_button_action} #{display_issuable_type}", close_reopen_issuable_path(issuable), - method: button_method, class: "#{button_class} btn-#{button_action}", title: "#{display_button_action} #{display_issuable_type}" + method: button_method, class: "#{button_class} btn-#{button_action} #{(add_blocked_class ? 'btn-issue-blocked' : '')}", title: "#{display_button_action} #{display_issuable_type}", data: { qa_selector: 'close_issue_button' } = button_tag type: 'button', class: "#{toggle_class} btn-#{button_action}-color", - data: { 'dropdown-trigger' => '#issuable-close-menu' }, 'aria-label' => 'Toggle dropdown' do + data: { 'dropdown-trigger' => '#issuable-close-menu' }, 'aria-label' => _('Toggle dropdown') do = icon('caret-down', class: 'toggle-icon icon') %ul#issuable-close-menu.js-issuable-close-menu.dropdown-menu{ data: { dropdown: true } } %li.close-item{ class: "#{issuable_button_visibility(issuable, true) || 'droplab-item-selected'}", - data: { text: "Close #{display_issuable_type}", url: close_issuable_path(issuable), + data: { text: _("Close %{display_issuable_type}") % { display_issuable_type: display_issuable_type }, url: close_issuable_path(issuable), button_class: "#{button_class} btn-close", toggle_class: "#{toggle_class} btn-close-color", method: button_method } } %button.btn.btn-transparent = icon('check', class: 'icon') .description %strong.title - Close + = _('Close') = display_issuable_type %li.reopen-item{ class: "#{issuable_button_visibility(issuable, false) || 'droplab-item-selected'}", - data: { text: "Reopen #{display_issuable_type}", url: reopen_issuable_path(issuable), + data: { text: _("Reopen %{display_issuable_type}") % { display_issuable_type: display_issuable_type }, url: reopen_issuable_path(issuable), button_class: "#{button_class} btn-reopen", toggle_class: "#{toggle_class} btn-reopen-color", method: button_method } } %button.btn.btn-transparent = icon('check', class: 'icon') .description %strong.title - Reopen + = _('Reopen') = display_issuable_type %li.divider.droplab-item-ignore - %li.report-item{ data: { text: 'Report abuse', url: new_abuse_report_path(user_id: issuable.author.id, ref_url: issuable_url(issuable)), + %li.report-item{ data: { text: _('Report abuse'), url: new_abuse_report_path(user_id: issuable.author.id, ref_url: issuable_url(issuable)), button_class: "#{button_class} btn-close-color", toggle_class: "#{toggle_class} btn-close-color", method: '' } } %button.btn.btn-transparent = icon('check', class: 'icon') .description - %strong.title Report abuse + %strong.title= _('Report abuse') %p.text - Report - = display_issuable_type.pluralize - that are abusive, inappropriate or spam. + = _('Report %{display_issuable_type} that are abusive, inappropriate or spam.') % { display_issuable_type: display_issuable_type.pluralize } diff --git a/app/views/shared/issuable/_label_dropdown.html.haml b/app/views/shared/issuable/_label_dropdown.html.haml index bca5db16bd3..535af522c1a 100644 --- a/app/views/shared/issuable/_label_dropdown.html.haml +++ b/app/views/shared/issuable/_label_dropdown.html.haml @@ -8,10 +8,11 @@ - data_options = local_assigns.fetch(:data_options, {}) - classes = local_assigns.fetch(:classes, []) - selected = local_assigns.fetch(:selected, nil) -- dropdown_title = local_assigns.fetch(:dropdown_title, "Filter by label") -- dropdown_data = label_dropdown_data(edit_context, labels: labels_filter_path_with_defaults(only_group_labels: edit_context.is_a?(Group)), default_label: "Labels") +- dropdown_title = local_assigns.fetch(:dropdown_title, _('Filter by label')) +- dropdown_data = label_dropdown_data(edit_context, labels: labels_filter_path_with_defaults(only_group_labels: edit_context.is_a?(Group)), default_label: _('Labels')) + - dropdown_data.merge!(data_options) -- label_name = local_assigns.fetch(:label_name, "Labels") +- label_name = local_assigns.fetch(:label_name, _('Labels')) - no_default_styles = local_assigns.fetch(:no_default_styles, false) - classes << 'js-extra-options' if extra_options - classes << 'js-filter-submit' if filter_submit diff --git a/app/views/shared/issuable/_label_page_default.html.haml b/app/views/shared/issuable/_label_page_default.html.haml index a0fb5229fc3..43e80c9db27 100644 --- a/app/views/shared/issuable/_label_page_default.html.haml +++ b/app/views/shared/issuable/_label_page_default.html.haml @@ -3,7 +3,7 @@ - show_title = local_assigns.fetch(:show_title, true) - show_create = local_assigns.fetch(:show_create, true) - show_footer = local_assigns.fetch(:show_footer, true) -- filter_placeholder = local_assigns.fetch(:filter_placeholder, 'Search') +- filter_placeholder = local_assigns.fetch(:filter_placeholder, _('Search')) - show_boards_content = local_assigns.fetch(:show_boards_content, false) - subject = @project || @group .dropdown-page-one diff --git a/app/views/shared/issuable/_nav.html.haml b/app/views/shared/issuable/_nav.html.haml index 93408e0bfc0..c715cd8f736 100644 --- a/app/views/shared/issuable/_nav.html.haml +++ b/app/views/shared/issuable/_nav.html.haml @@ -4,20 +4,20 @@ %ul.nav-links.issues-state-filters.mobile-separator.nav.nav-tabs %li{ class: active_when(params[:state] == 'opened') }> - = link_to page_filter_path(state: 'opened'), id: 'state-opened', title: "Filter by #{page_context_word} that are currently opened.", data: { state: 'opened' } do + = link_to page_filter_path(state: 'opened'), id: 'state-opened', title: _("Filter by %{page_context_word} that are currently opened.") % { page_context_word: page_context_word }, data: { state: 'opened' } do #{issuables_state_counter_text(type, :opened, display_count)} - if type == :merge_requests %li{ class: active_when(params[:state] == 'merged') }> - = link_to page_filter_path(state: 'merged'), id: 'state-merged', title: 'Filter by merge requests that are currently merged.', data: { state: 'merged' } do + = link_to page_filter_path(state: 'merged'), id: 'state-merged', title: _('Filter by merge requests that are currently merged.'), data: { state: 'merged' } do #{issuables_state_counter_text(type, :merged, display_count)} %li{ class: active_when(params[:state] == 'closed') }> - = link_to page_filter_path(state: 'closed'), id: 'state-closed', title: 'Filter by merge requests that are currently closed and unmerged.', data: { state: 'closed' } do + = link_to page_filter_path(state: 'closed'), id: 'state-closed', title: _('Filter by merge requests that are currently closed and unmerged.'), data: { state: 'closed' } do #{issuables_state_counter_text(type, :closed, display_count)} - else %li{ class: active_when(params[:state] == 'closed') }> - = link_to page_filter_path(state: 'closed'), id: 'state-closed', title: 'Filter by issues that are currently closed.', data: { state: 'closed', qa_selector: 'closed_issues_link' } do + = link_to page_filter_path(state: 'closed'), id: 'state-closed', title: _('Filter by issues that are currently closed.'), data: { state: 'closed', qa_selector: 'closed_issues_link' } do #{issuables_state_counter_text(type, :closed, display_count)} = render 'shared/issuable/nav_links/all', page_context_word: page_context_word, counter: issuables_state_counter_text(type, :all, display_count) diff --git a/app/views/shared/issuable/_search_bar.html.haml b/app/views/shared/issuable/_search_bar.html.haml index d9ca0b8869f..34be9291f1f 100644 --- a/app/views/shared/issuable/_search_bar.html.haml +++ b/app/views/shared/issuable/_search_bar.html.haml @@ -1,6 +1,7 @@ - type = local_assigns.fetch(:type) - board = local_assigns.fetch(:board, nil) - show_sorting_dropdown = local_assigns.fetch(:show_sorting_dropdown, true) +- placeholder = local_assigns[:placeholder] || _('Search or filter results...') - is_not_boards_modal_or_productivity_analytics = type != :boards_modal && type != :productivity_analytics - block_css_class = is_not_boards_modal_or_productivity_analytics ? 'row-content-block second-block' : '' - user_can_admin_list = board && can?(current_user, :admin_list, board.resource_parent) @@ -29,7 +30,7 @@ .scroll-container %ul.tokens-container.list-unstyled %li.input-token - %input.form-control.filtered-search{ search_filter_input_options(type) } + %input.form-control.filtered-search{ search_filter_input_options(type, placeholder) } #js-dropdown-hint.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } } %li.filter-dropdown-item{ data: {hint: "#{'{{hint}}'}", tag: "#{'{{tag}}'}", action: "#{'{{hint === \'search\' ? \'submit\' : \'\' }}'}" } } @@ -73,6 +74,7 @@ user: User.new(username: '{{username}}', name: '{{name}}'), avatar: { lazy: true, url: '{{avatar_url}}' } = render_if_exists 'shared/issuable/approver_dropdown' + = render_if_exists 'shared/issuable/approved_by_dropdown' #js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu %ul{ data: { dropdown: true } } %li.filter-dropdown-item{ data: { value: 'None' } } diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index e20573ed3a7..a1c56cdb64f 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -15,7 +15,7 @@ - if signed_in %span.issuable-header-text.hide-collapsed.float-left = _('To Do') - %a.gutter-toggle.float-right.js-sidebar-toggle.has-tooltip{ role: "button", href: "#", "aria-label" => "Toggle sidebar", title: sidebar_gutter_tooltip_text, data: { container: 'body', placement: 'left', boundary: 'viewport' } } + %a.gutter-toggle.float-right.js-sidebar-toggle.has-tooltip{ role: "button", href: "#", "aria-label" => _('Toggle sidebar'), title: sidebar_gutter_tooltip_text, data: { container: 'body', placement: 'left', boundary: 'viewport' } } = sidebar_gutter_toggle_icon - if signed_in = render "shared/issuable/sidebar_todo", issuable_sidebar: issuable_sidebar @@ -65,7 +65,7 @@ .sidebar-collapsed-icon.has-tooltip{ data: { placement: 'left', container: 'body', html: 'true', boundary: 'viewport' }, title: sidebar_due_date_tooltip_label(issuable_sidebar[:due_date]) } = icon('calendar', 'aria-hidden': 'true') %span.js-due-date-sidebar-value - = issuable_sidebar[:due_date].try(:to_s, :medium) || 'None' + = issuable_sidebar[:due_date].try(:to_s, :medium) || _('None') .title.hide-collapsed = _('Due date') = icon('spinner spin', class: 'hidden block-loading', 'aria-hidden': 'true') diff --git a/app/views/shared/issuable/_sidebar_assignees.html.haml b/app/views/shared/issuable/_sidebar_assignees.html.haml index b5a27f2f17d..4192ecd2238 100644 --- a/app/views/shared/issuable/_sidebar_assignees.html.haml +++ b/app/views/shared/issuable/_sidebar_assignees.html.haml @@ -1,7 +1,7 @@ - issuable_type = issuable_sidebar[:type] - signed_in = !!issuable_sidebar.dig(:current_user, :id) -#js-vue-sidebar-assignees{ data: { field: "#{issuable_type}", signed_in: signed_in } } +#js-vue-sidebar-assignees{ data: { field: issuable_type, signed_in: signed_in } } .title.hide-collapsed = _('Assignee') .spinner.spinner-sm.align-bottom diff --git a/app/views/shared/issuable/form/_branch_chooser.html.haml b/app/views/shared/issuable/form/_branch_chooser.html.haml index d8253924e0a..3794a3b3845 100644 --- a/app/views/shared/issuable/form/_branch_chooser.html.haml +++ b/app/views/shared/issuable/form/_branch_chooser.html.haml @@ -6,7 +6,7 @@ - source_title, target_title = format_mr_branch_names(@merge_request) -.form-group.row.d-flex.gl-pl-3.gl-pr-3.branch-selector +.form-group.row.d-flex.gl-pl-3-deprecated-no-really-do-not-use-me.gl-pr-3-deprecated-no-really-do-not-use-me.branch-selector .align-self-center %span = _('From <code>%{source_title}</code> into').html_safe % { source_title: source_title } diff --git a/app/views/shared/members/_badge.html.haml b/app/views/shared/members/_badge.html.haml new file mode 100644 index 00000000000..e304207f3e9 --- /dev/null +++ b/app/views/shared/members/_badge.html.haml @@ -0,0 +1,4 @@ +- type ||= 'info' + +%span.px-1.py-1 + %span{ class: "badge badge-#{type}" }= yield diff --git a/app/views/shared/members/_blocked_badge.html.haml b/app/views/shared/members/_blocked_badge.html.haml new file mode 100644 index 00000000000..95335ebe74d --- /dev/null +++ b/app/views/shared/members/_blocked_badge.html.haml @@ -0,0 +1,3 @@ +- if user.blocked? + = render 'shared/members/badge', type: 'danger' do + = _("Blocked") diff --git a/app/views/shared/members/_its_you_badge.html.haml b/app/views/shared/members/_its_you_badge.html.haml new file mode 100644 index 00000000000..b53ffd8032d --- /dev/null +++ b/app/views/shared/members/_its_you_badge.html.haml @@ -0,0 +1,3 @@ +- if user == current_user + = render 'shared/members/badge', type: 'success' do + = _("It's you") diff --git a/app/views/shared/members/_member.html.haml b/app/views/shared/members/_member.html.haml index d74030c566f..f7d90a588c7 100644 --- a/app/views/shared/members/_member.html.haml +++ b/app/views/shared/members/_member.html.haml @@ -13,24 +13,23 @@ - if user = image_tag avatar_icon_for_user(user, 40), class: "avatar s40 flex-shrink-0 flex-grow-0", alt: '' .user-info - = link_to user.name, user_path(user), class: 'member js-user-link', data: { user_id: user.id } - = user_status(user) - %span.cgray= user.to_reference + %span.mr-1 + = link_to user.name, user_path(user), class: 'member js-user-link', data: { user_id: user.id } + = user_status(user) + %span.cgray= user.to_reference - = render_if_exists 'shared/members/ee/sso_badge', member: member + .mx-n1.d-inline-flex.flex-wrap + = render_if_exists 'shared/members/ee/sso_badge', member: member - - if user == current_user - %span.badge.badge-success.prepend-left-5= _("It's you") + = render_if_exists 'shared/members/ee/gma_badge', member: member - = render_if_exists 'shared/members/ee/license_badge', user: user, group: @group + = render 'shared/members/its_you_badge', user: user, current_user: current_user - - if user.blocked? - %label.badge.badge-danger - %strong= _("Blocked") + = render_if_exists 'shared/members/ee/license_badge', user: user, group: @group - - if user.two_factor_enabled? - %label.badge.badge-info - = _("2FA") + = render 'shared/members/blocked_badge', user: user + + = render 'shared/members/two_factor_auth_badge', user: user - if source.instance_of?(Group) && source != @group · @@ -68,7 +67,7 @@ class: 'btn btn-default align-self-center mr-sm-2', title: _('Resend invite') - - if user != current_user && member.can_update? + - if user != current_user && member.can_update? && !user&.project_bot? = form_for member, remote: true, html: { class: "js-edit-member-form form-group #{'d-sm-flex' unless force_mobile_view}" } do |f| = f.hidden_field :access_level .member-form-control.dropdown{ class: [("mr-sm-2 d-sm-inline-block" unless force_mobile_view)] } @@ -118,7 +117,7 @@ method: :delete, data: { confirm: leave_confirmation_message(member.source) }, class: "btn btn-remove align-self-center m-0 #{'ml-sm-2' unless force_mobile_view}" - - else + - elsif !user&.project_bot? = link_to member, method: :delete, data: { confirm: remove_member_message(member), qa_selector: 'delete_member_button' }, diff --git a/app/views/shared/members/_two_factor_auth_badge.html.haml b/app/views/shared/members/_two_factor_auth_badge.html.haml new file mode 100644 index 00000000000..34850c135d6 --- /dev/null +++ b/app/views/shared/members/_two_factor_auth_badge.html.haml @@ -0,0 +1,3 @@ +- if user.two_factor_enabled? + = render 'shared/members/badge', type: 'info' do + = _("2FA") diff --git a/app/views/shared/milestones/_issuable.html.haml b/app/views/shared/milestones/_issuable.html.haml index 0adfe2f0c04..f8bf3e7ad6a 100644 --- a/app/views/shared/milestones/_issuable.html.haml +++ b/app/views/shared/milestones/_issuable.html.haml @@ -25,5 +25,5 @@ %span.assignee-icon - assignees.each do |assignee| = link_to polymorphic_path(issuable_type_args, { milestone_title: @milestone.title, assignee_id: assignee.id, state: 'all' }), - class: 'has-tooltip', title: "Assigned to #{assignee.name}", data: { container: 'body' } do + class: 'has-tooltip', title: _("Assigned to %{assignee_name}") % { assignee_name: assignee.name }, data: { container: 'body' } do - image_tag(avatar_icon_for_user(assignee, 16), class: "avatar s16", alt: '') diff --git a/app/views/shared/milestones/_issues_tab.html.haml b/app/views/shared/milestones/_issues_tab.html.haml index d7e4f2ed5a0..6684f6d752a 100644 --- a/app/views/shared/milestones/_issues_tab.html.haml +++ b/app/views/shared/milestones/_issues_tab.html.haml @@ -8,8 +8,8 @@ .row.prepend-top-default .col-md-4 - = render 'shared/milestones/issuables', args.merge(title: 'Unstarted Issues (open and unassigned)', issuables: issues.opened.unassigned, id: 'unassigned', show_counter: true) + = render 'shared/milestones/issuables', args.merge(title: s_('Milestones|Unstarted Issues (open and unassigned)'), issuables: issues.opened.unassigned, id: 'unassigned', show_counter: true) .col-md-4 - = render 'shared/milestones/issuables', args.merge(title: 'Ongoing Issues (open and assigned)', issuables: issues.opened.assigned, id: 'ongoing', show_counter: true) + = render 'shared/milestones/issuables', args.merge(title: s_('Milestones|Ongoing Issues (open and assigned)'), issuables: issues.opened.assigned, id: 'ongoing', show_counter: true) .col-md-4 - = render 'shared/milestones/issuables', args.merge(title: 'Completed Issues (closed)', issuables: issues.closed, id: 'closed', show_counter: true) + = render 'shared/milestones/issuables', args.merge(title: s_('Milestones|Completed Issues (closed)'), issuables: issues.closed, id: 'closed', show_counter: true) diff --git a/app/views/shared/milestones/_labels_tab.html.haml b/app/views/shared/milestones/_labels_tab.html.haml index 6d79b0d31b2..3b4d29ca7b0 100644 --- a/app/views/shared/milestones/_labels_tab.html.haml +++ b/app/views/shared/milestones/_labels_tab.html.haml @@ -9,6 +9,6 @@ .float-right.d-none.d-lg-block.d-xl-block = link_to milestones_issues_path(options.merge(state: 'opened')), class: 'btn btn-transparent btn-action' do - - pluralize milestone_issues_by_label_count(@milestone, label, state: :opened), 'open issue' + - pluralize milestone_issues_by_label_count(@milestone, label, state: :opened), _('open issue') = link_to milestones_issues_path(options.merge(state: 'closed')), class: 'btn btn-transparent btn-action' do - - pluralize milestone_issues_by_label_count(@milestone, label, state: :closed), 'closed issue' + - pluralize milestone_issues_by_label_count(@milestone, label, state: :closed), _('closed issue') diff --git a/app/views/shared/milestones/_merge_requests_tab.haml b/app/views/shared/milestones/_merge_requests_tab.haml index 9c193f901e2..4dba2473efc 100644 --- a/app/views/shared/milestones/_merge_requests_tab.haml +++ b/app/views/shared/milestones/_merge_requests_tab.haml @@ -3,10 +3,10 @@ .row.prepend-top-default .col-md-3 - = render 'shared/milestones/issuables', args.merge(title: 'Work in progress (open and unassigned)', issuables: merge_requests.opened.unassigned, id: 'unassigned', show_counter: true) + = render 'shared/milestones/issuables', args.merge(title: _('Work in progress (open and unassigned)'), issuables: merge_requests.opened.unassigned, id: 'unassigned', show_counter: true) .col-md-3 - = render 'shared/milestones/issuables', args.merge(title: 'Waiting for merge (open and assigned)', issuables: merge_requests.opened.assigned, id: 'ongoing', show_counter: true) + = render 'shared/milestones/issuables', args.merge(title: _('Waiting for merge (open and assigned)'), issuables: merge_requests.opened.assigned, id: 'ongoing', show_counter: true) .col-md-3 - = render 'shared/milestones/issuables', args.merge(title: 'Rejected (closed)', issuables: merge_requests.closed, id: 'closed', show_counter: true) + = render 'shared/milestones/issuables', args.merge(title: _('Rejected (closed)'), issuables: merge_requests.closed, id: 'closed', show_counter: true) .col-md-3 - = render 'shared/milestones/issuables', args.merge(title: 'Merged', issuables: merge_requests.merged, id: 'merged', primary: true, show_counter: true) + = render 'shared/milestones/issuables', args.merge(title: _('Merged'), issuables: merge_requests.merged, id: 'merged', primary: true, show_counter: true) diff --git a/app/views/shared/milestones/_milestone.html.haml b/app/views/shared/milestones/_milestone.html.haml index 451c2c2ba10..9f61082d605 100644 --- a/app/views/shared/milestones/_milestone.html.haml +++ b/app/views/shared/milestones/_milestone.html.haml @@ -1,6 +1,6 @@ - dashboard = local_assigns[:dashboard] - custom_dom_id = dom_id(milestone.try(:milestone) ? milestone.milestone : milestone) -- milestone_type = milestone.group_milestone? ? 'Group Milestone' : 'Project Milestone' +- milestone_type = milestone.group_milestone? ? s_('Milestones|Group Milestone') : s_('Milestones|Project Milestone') %li{ class: "milestone milestone-#{milestone.closed? ? 'closed' : 'open'}", id: custom_dom_id } .row @@ -42,17 +42,17 @@ .col-sm-4.milestone-progress = milestone_progress_bar(milestone) - = link_to pluralize(milestone.total_issues_count, 'Issue'), issues_path + = link_to pluralize(milestone.total_issues_count, _('Issue')), issues_path - if milestone.merge_requests_enabled? · - = link_to pluralize(milestone.merge_requests_visible_to_user(current_user).size, 'Merge Request'), merge_requests_path + = link_to pluralize(milestone.merge_requests_visible_to_user(current_user).size, _('Merge Request')), merge_requests_path .float-lg-right.light #{milestone.percent_complete}% complete .col-sm-2 .milestone-actions.d-flex.justify-content-sm-start.justify-content-md-end - if @project - if can_admin_project_milestones? and milestone.active? - if can_admin_group_milestones? - %button.js-promote-project-milestone-button.btn.btn-blank.btn-sm.btn-grouped.has-tooltip{ title: _('Promote to Group Milestone'), + %button.js-promote-project-milestone-button.btn.btn-blank.btn-sm.btn-grouped.has-tooltip{ title: s_('Milestones|Promote to Group Milestone'), disabled: true, type: 'button', data: { url: promote_project_milestone_path(milestone.project, milestone), @@ -63,15 +63,15 @@ toggle: 'modal' } } = sprite_icon('level-up', size: 14) - = link_to 'Close Milestone', project_milestone_path(@project, milestone, milestone: {state_event: :close }), method: :put, remote: true, class: "btn btn-sm btn-close btn-grouped" + = link_to s_('Milestones|Close Milestone'), project_milestone_path(@project, milestone, milestone: {state_event: :close }), method: :put, remote: true, class: "btn btn-sm btn-close btn-grouped" - unless milestone.active? - = link_to 'Reopen Milestone', project_milestone_path(@project, milestone, milestone: {state_event: :activate }), method: :put, class: "btn btn-grouped btn-reopen" + = link_to s_('Milestones|Reopen Milestone'), project_milestone_path(@project, milestone, milestone: {state_event: :activate }), method: :put, class: "btn btn-grouped btn-reopen" - if @group - if can?(current_user, :admin_milestone, @group) - if milestone.closed? - = link_to 'Reopen Milestone', group_milestone_route(milestone, {state_event: :activate }), method: :put, class: "btn btn-sm btn-grouped btn-reopen" + = link_to s_('Milestones|Reopen Milestone'), group_milestone_route(milestone, {state_event: :activate }), method: :put, class: "btn btn-sm btn-grouped btn-reopen" - else - = link_to 'Close Milestone', group_milestone_route(milestone, {state_event: :close }), method: :put, class: "btn btn-sm btn-grouped btn-close" + = link_to s_('Milestones|Close Milestone'), group_milestone_route(milestone, {state_event: :close }), method: :put, class: "btn btn-sm btn-grouped btn-close" - if dashboard .label-badge.label-badge-gray = milestone_type diff --git a/app/views/shared/milestones/_top.html.haml b/app/views/shared/milestones/_top.html.haml index 8d911d4247e..5f53e6316af 100644 --- a/app/views/shared/milestones/_top.html.haml +++ b/app/views/shared/milestones/_top.html.haml @@ -21,10 +21,10 @@ %table.table %thead %tr - %th Project - %th Open issues - %th State - %th Due date + %th= _('Project') + %th= _('Open issues') + %th= _('State') + %th= _('Due date') %tr %td - project_name = group ? milestone.project.name : milestone.project.full_name @@ -33,8 +33,8 @@ = milestone.milestone.issues_visible_to_user(current_user).opened.count %td - if milestone.closed? - Closed + = _('Closed') - else - Open + = _('Open') %td = milestone.expires_at diff --git a/app/views/shared/notes/_form.html.haml b/app/views/shared/notes/_form.html.haml index d91bc6e57c9..327745e4f4d 100644 --- a/app/views/shared/notes/_form.html.haml +++ b/app/views/shared/notes/_form.html.haml @@ -5,7 +5,7 @@ - else - preview_url = preview_markdown_path(@project) -= form_for form_resources, url: new_form_url, remote: true, html: { :'data-type' => 'json', multipart: true, id: nil, class: "new-note js-new-note-form js-quick-submit common-note-form", "data-noteable-iid" => @note.noteable.try(:iid), }, authenticity_token: true do |f| += form_for form_resources, url: new_form_url, remote: true, html: { :'data-type' => 'json', multipart: true, id: nil, class: "new-note js-new-note-form js-quick-submit common-note-form discussion-reply-holder", "data-noteable-iid" => @note.noteable.try(:iid), }, authenticity_token: true do |f| = hidden_field_tag :view, diff_view = hidden_field_tag :line_type = hidden_field_tag :merge_request_diff_head_sha, @note.noteable.try(:diff_head_sha) @@ -24,7 +24,7 @@ -# DiffNote = f.hidden_field :position - .discussion-form-container + .discussion-form-container.discussion-with-resolve-btn.flex-column.p-0 = render layout: 'projects/md_preview', locals: { url: preview_url, referenced_users: true } do = render 'projects/zen', f: f, attr: :note, diff --git a/app/views/shared/notes/_note.html.haml b/app/views/shared/notes/_note.html.haml index 50bc4fb35df..df09c4338a1 100644 --- a/app/views/shared/notes/_note.html.haml +++ b/app/views/shared/notes/_note.html.haml @@ -40,9 +40,10 @@ - if note.system %span.system-note-message = markdown_field(note, :note) - %span.system-note-separator - · - %a.system-note-separator{ href: "##{dom_id(note)}" }= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago') + - if note.created_at + %span.system-note-separator + · + %a.system-note-separator{ href: "##{dom_id(note)}" }= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago') - unless note.system? .note-actions - if note.for_personal_snippet? diff --git a/app/views/shared/snippets/_form.html.haml b/app/views/shared/snippets/_form.html.haml index 396b6e56ea9..4695692fb53 100644 --- a/app/views/shared/snippets/_form.html.haml +++ b/app/views/shared/snippets/_form.html.haml @@ -1,7 +1,3 @@ -- if Feature.disabled?(:monaco_snippets) - - content_for :page_specific_javascripts do - = page_specific_javascript_tag('lib/ace.js') - - if Feature.enabled?(:snippets_edit_vue) #js-snippet-edit.snippet-form{ data: {'project_path': @snippet.project&.full_path, 'snippet-gid': @snippet.new_record? ? '' : @snippet.to_global_id, 'markdown-preview-path': preview_markdown_path(parent), 'markdown-docs-path': help_page_path('user/markdown'), 'visibility-help-link': help_page_path("public_access/public_access") } } - else @@ -24,7 +20,7 @@ = text_field_tag nil, nil, class: 'form-control', placeholder: description_placeholder, data: { qa_selector: 'description_placeholder' } .js-expanded{ class: ('d-none' if !is_expanded) } = render layout: 'projects/md_preview', locals: { url: preview_markdown_path(@project), referenced_users: true } do - = render 'projects/zen', f: f, attr: :description, classes: 'note-textarea', placeholder: description_placeholder, qa_selector: 'description_field' + = render 'projects/zen', f: f, attr: :description, classes: 'note-textarea', placeholder: description_placeholder, qa_selector: 'snippet_description_field' = render 'shared/notes/hints' .form-group.file-editor @@ -48,9 +44,9 @@ .form-actions - if @snippet.new_record? - = f.submit 'Create snippet', class: "btn-success btn qa-create-snippet-button" + = f.submit 'Create snippet', class: "btn-success btn", data: { qa_selector: 'submit_button' } - else - = f.submit 'Save changes', class: "btn-success btn" + = f.submit 'Save changes', class: "btn-success btn", data: { qa_selector: 'submit_button' } - if @snippet.project_id = link_to "Cancel", project_snippets_path(@project), class: "btn btn-cancel" diff --git a/app/views/shared/snippets/_header.html.haml b/app/views/shared/snippets/_header.html.haml index 1243bdab6dd..e663d57ae6a 100644 --- a/app/views/shared/snippets/_header.html.haml +++ b/app/views/shared/snippets/_header.html.haml @@ -21,7 +21,7 @@ = markdown_field(@snippet, :title) - if @snippet.description.present? - .description{ data: { qa_selector: 'snippet_description' } } + .description{ data: { qa_selector: 'snippet_description_field' } } .md = markdown_field(@snippet, :description) %textarea.hidden.js-task-list-field @@ -34,7 +34,7 @@ .embed-snippet .input-group .input-group-prepend - %button.btn.btn-svg.embed-toggle.input-group-text.qa-embed-type{ 'data-toggle': 'dropdown', type: 'button' } + %button.btn.btn-svg.embed-toggle.input-group-text{ 'data-toggle': 'dropdown', type: 'button' } %span.js-embed-action= _("Embed") = sprite_icon('angle-down', size: 12, css_class: 'caret-down') %ul.dropdown-menu.dropdown-menu-selectable.embed-toggle-list diff --git a/app/views/shared/snippets/_snippet.html.haml b/app/views/shared/snippets/_snippet.html.haml index 3fea2c1e3fc..128ddbb8e8b 100644 --- a/app/views/shared/snippets/_snippet.html.haml +++ b/app/views/shared/snippets/_snippet.html.haml @@ -1,6 +1,5 @@ - link_project = local_assigns.fetch(:link_project, false) - notes_count = @noteable_meta_data[snippet.id].user_notes_count -- file_name = snippet_file_name(snippet) %li.snippet-row.py-3 = image_tag avatar_icon_for_user(snippet.author), class: "avatar s40 d-none d-sm-block", alt: '' @@ -8,10 +7,6 @@ .title = link_to gitlab_snippet_path(snippet) do = snippet.title - - if file_name.present? - %span.snippet-filename.d-none.d-sm-inline-block.ml-2 - = sprite_icon('doc-code', size: 16, css_class: 'file-icon align-text-bottom') - = file_name %ul.controls %li diff --git a/app/views/shared/tokens/_scopes_form.html.haml b/app/views/shared/tokens/_scopes_form.html.haml index a5d3e1c8de0..82e32597c94 100644 --- a/app/views/shared/tokens/_scopes_form.html.haml +++ b/app/views/shared/tokens/_scopes_form.html.haml @@ -6,4 +6,4 @@ %fieldset.form-group.form-check = check_box_tag "#{prefix}[scopes][]", scope, token.scopes.include?(scope), id: "#{prefix}_scopes_#{scope}", class: "form-check-input qa-#{scope}-radio" = label_tag ("#{prefix}_scopes_#{scope}"), scope, class: 'label-bold form-check-label' - .text-secondary= t scope, scope: [:doorkeeper, :scope_desc] + .text-secondary= t scope, scope: scope_description(prefix) |