add i18n support to admin runners page

This commit is contained in:
Alexis Reigel 2018-08-20 10:51:31 +02:00
parent b62219109f
commit 7fbd922946
No known key found for this signature in database
GPG Key ID: 55ADA7C7B683B329
3 changed files with 100 additions and 48 deletions

View File

@ -1,6 +1,6 @@
.gl-responsive-table-row{ id: dom_id(runner) } .gl-responsive-table-row{ id: dom_id(runner) }
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: "rowheader" } Type .table-mobile-header{ role: 'rowheader' }= _('Type')
.table-mobile-content .table-mobile-content
- if runner.instance_type? - if runner.instance_type?
%span.badge.badge-success shared %span.badge.badge-success shared
@ -14,65 +14,65 @@
%span.badge.badge-danger paused %span.badge.badge-danger paused
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: 'rowheader' } Runner token .table-mobile-header{ role: 'rowheader' }= _('Runner token')
.table-mobile-content .table-mobile-content
= link_to runner.short_sha, admin_runner_path(runner) = link_to runner.short_sha, admin_runner_path(runner)
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: 'rowheader' } Description .table-mobile-header{ role: 'rowheader' }= _('Description')
.table-mobile-content .table-mobile-content
= runner.description = runner.description
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: 'rowheader' } Version .table-mobile-header{ role: 'rowheader' }= _('Version')
.table-mobile-content .table-mobile-content
= runner.version = runner.version
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: 'rowheader' } IP Address .table-mobile-header{ role: 'rowheader' }= _('IP Address')
.table-mobile-content .table-mobile-content
= runner.ip_address = runner.ip_address
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: 'rowheader' } Projects .table-mobile-header{ role: 'rowheader' }= _('Projects')
.table-mobile-content .table-mobile-content
- if runner.instance_type? || runner.group_type? - if runner.instance_type? || runner.group_type?
n/a = _('n/a')
- else - else
= runner.projects.count(:all) = runner.projects.count(:all)
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: 'rowheader' } Jobs .table-mobile-header{ role: 'rowheader' }= _('Jobs')
.table-mobile-content .table-mobile-content
= runner.builds.count(:all) = runner.builds.count(:all)
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: 'rowheader' } Tags .table-mobile-header{ role: 'rowheader' }= _('Tags')
.table-mobile-content .table-mobile-content
- runner.tag_list.sort.each do |tag| - runner.tag_list.sort.each do |tag|
%span.badge.badge-primary %span.badge.badge-primary
= tag = tag
.table-section.section-10 .table-section.section-10
.table-mobile-header{ role: 'rowheader' } Last contact .table-mobile-header{ role: 'rowheader' }= _('Last contact')
.table-mobile-content .table-mobile-content
- if runner.contacted_at - if runner.contacted_at
= time_ago_with_tooltip runner.contacted_at = time_ago_with_tooltip runner.contacted_at
- else - else
Never = _('Never')
.table-section.table-button-footer.section-10 .table-section.table-button-footer.section-10
.btn-group.table-action-buttons .btn-group.table-action-buttons
.btn-group .btn-group
= link_to admin_runner_path(runner), class: 'btn btn-default has-tooltip', title: 'Edit', ref: 'tooltip', aria: { label: 'Edit' }, data: { placement: 'top', container: 'body'} do = link_to admin_runner_path(runner), class: 'btn btn-default has-tooltip', title: _('Edit'), ref: 'tooltip', aria: { label: _('Edit') }, data: { placement: 'top', container: 'body'} do
= icon('pencil') = icon('pencil')
.btn-group .btn-group
- if runner.active? - if runner.active?
= link_to [:pause, :admin, runner], method: :get, class: 'btn btn-default has-tooltip', title: 'Pause', ref: 'tooltip', aria: { label: 'Pause' }, data: { placement: 'top', container: 'body', confirm: "Are you sure?" } do = link_to [:pause, :admin, runner], method: :get, class: 'btn btn-default has-tooltip', title: _('Pause'), ref: 'tooltip', aria: { label: _('Pause') }, data: { placement: 'top', container: 'body', confirm: _('Are you sure?') } do
= icon('pause') = icon('pause')
- else - else
= link_to [:resume, :admin, runner], method: :get, class: 'btn btn-default has-tooltip', title: 'Resume', ref: 'tooltip', aria: { label: 'Resume' }, data: { placement: 'top', container: 'body'} do = link_to [:resume, :admin, runner], method: :get, class: 'btn btn-default has-tooltip', title: _('Resume'), ref: 'tooltip', aria: { label: _('Resume') }, data: { placement: 'top', container: 'body'} do
= icon('play') = icon('play')
.btn-group .btn-group
= link_to [:admin, runner], method: :delete, class: 'btn btn-danger has-tooltip', title: 'Remove', ref: 'tooltip', aria: { label: 'Remove' }, data: { placement: 'top', container: 'body', confirm: "Are you sure?" } do = link_to [:admin, runner], method: :delete, class: 'btn btn-danger has-tooltip', title: _('Remove'), ref: 'tooltip', aria: { label: _('Remove') }, data: { placement: 'top', container: 'body', confirm: _('Are you sure?') } do
= icon('remove') = icon('remove')

View File

@ -1,73 +1,77 @@
- breadcrumb_title "Runners" - breadcrumb_title _('Runners')
- @no_container = true - @no_container = true
%div{ class: container_class } %div{ class: container_class }
.bs-callout .bs-callout
%p %p
A 'Runner' is a process which runs a job. = (_"A 'Runner' is a process which runs a job. You can setup as many Runners as you need.")
You can setup as many Runners as you need.
%br %br
Runners can be placed on separate users, servers, even on your local machine. = _('Runners can be placed on separate users, servers, even on your local machine.')
%br %br
%div %div
%span Each Runner can be in one of the following states: %span= _('Each Runner can be in one of the following states:')
%ul %ul
%li %li
%span.badge.badge-success shared %span.badge.badge-success shared
\- Runner runs jobs from all unassigned projects \-
= _('Runner runs jobs from all unassigned projects')
%li %li
%span.badge.badge-success group %span.badge.badge-success group
\- Runner runs jobs from all unassigned projects in its group \-
= _('Runner runs jobs from all unassigned projects in its group')
%li %li
%span.badge.badge-info specific %span.badge.badge-info specific
\- Runner runs jobs from assigned projects \-
= _('Runner runs jobs from assigned projects')
%li %li
%span.badge.badge-warning locked %span.badge.badge-warning locked
\- Runner cannot be assigned to other projects \-
= _('Runner cannot be assigned to other projects')
%li %li
%span.badge.badge-danger paused %span.badge.badge-danger paused
\- Runner will not receive any new jobs \-
= _('Runner will not receive any new jobs')
.bs-callout.clearfix .bs-callout.clearfix
.float-left .float-left
%p %p
You can reset runners registration token by pressing a button below. = _('You can reset runners registration token by pressing a button below.')
.prepend-top-10 .prepend-top-10
= button_to _("Reset runners registration token"), reset_runners_token_admin_application_settings_path, = button_to _('Reset runners registration token'), reset_runners_token_admin_application_settings_path,
method: :put, class: 'btn btn-default', method: :put, class: 'btn btn-default',
data: { confirm: _("Are you sure you want to reset registration token?") } data: { confirm: _('Are you sure you want to reset registration token?') }
= render partial: 'ci/runner/how_to_setup_shared_runner', = render partial: 'ci/runner/how_to_setup_shared_runner',
locals: { registration_token: Gitlab::CurrentSettings.runners_registration_token } locals: { registration_token: Gitlab::CurrentSettings.runners_registration_token }
.bs-callout .bs-callout
%p %p
Runners currently online: #{@active_runners_cnt} = _('Runners currently online: %{active_runners_cnt}') % { active_runners_cnt: @active_runners_cnt }
.row-content-block.second-block .row-content-block.second-block
= form_tag admin_runners_path, id: 'runners-search', method: :get, class: 'filter-form js-filter-form' do = form_tag admin_runners_path, id: 'runners-search', method: :get, class: 'filter-form js-filter-form' do
.filtered-search-wrapper .filtered-search-wrapper
.filtered-search-box .filtered-search-box
= dropdown_tag(custom_icon('icon_history'), = dropdown_tag(custom_icon('icon_history'),
options: { wrapper_class: "filtered-search-history-dropdown-wrapper", options: { wrapper_class: 'filtered-search-history-dropdown-wrapper',
toggle_class: "filtered-search-history-dropdown-toggle-button", toggle_class: 'filtered-search-history-dropdown-toggle-button',
dropdown_class: "filtered-search-history-dropdown", dropdown_class: 'filtered-search-history-dropdown',
content_class: "filtered-search-history-dropdown-content", content_class: 'filtered-search-history-dropdown-content',
title: "Recent searches" }) do title: _('Recent searches') }) do
.js-filtered-search-history-dropdown{ data: { full_path: admin_runners_path } } .js-filtered-search-history-dropdown{ data: { full_path: admin_runners_path } }
.filtered-search-box-input-container.droplab-dropdown .filtered-search-box-input-container.droplab-dropdown
.scroll-container .scroll-container
%ul.tokens-container.list-unstyled %ul.tokens-container.list-unstyled
%li.input-token %li.input-token
%input.form-control.filtered-search{ { id: 'filtered-search-runners', placeholder: 'Search or filter results...' } } %input.form-control.filtered-search{ { id: 'filtered-search-runners', placeholder: _('Search or filter results...') } }
#js-dropdown-hint.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown #js-dropdown-hint.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown
%ul{ data: { dropdown: true } } %ul{ data: { dropdown: true } }
%li.filter-dropdown-item{ data: { action: 'submit' } } %li.filter-dropdown-item{ data: { action: 'submit' } }
= button_tag class: %w[btn btn-link] do = button_tag class: %w[btn btn-link] do
= icon('search') = icon('search')
%span %span
Press Enter or click to search = _('Press Enter or click to search')
%ul.filter-dropdown{ data: { dynamic: true, dropdown: true } } %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
%li.filter-dropdown-item %li.filter-dropdown-item
= button_tag class: %w[btn btn-link] do = button_tag class: %w[btn btn-link] do
@ -93,18 +97,18 @@
.runners-content.content-list .runners-content.content-list
.table-holder .table-holder
.gl-responsive-table-row.table-row-header{ role: 'row' } .gl-responsive-table-row.table-row-header{ role: 'row' }
.table-section.section-10{ role: 'rowheader' } Type .table-section.section-10{ role: 'rowheader' }= _('Type')
.table-section.section-10{ role: 'rowheader' } Runner token .table-section.section-10{ role: 'rowheader' }= _('Runner token')
.table-section.section-10{ role: 'rowheader' } Description .table-section.section-10{ role: 'rowheader' }= _('Description')
.table-section.section-10{ role: 'rowheader' } Version .table-section.section-10{ role: 'rowheader' }= _('Version')
.table-section.section-10{ role: 'rowheader' } IP Address .table-section.section-10{ role: 'rowheader' }= _('IP Address')
.table-section.section-10{ role: 'rowheader' } Projects .table-section.section-10{ role: 'rowheader' }= _('Projects')
.table-section.section-10{ role: 'rowheader' } Jobs .table-section.section-10{ role: 'rowheader' }= _('Jobs')
.table-section.section-10{ role: 'rowheader' } Tags .table-section.section-10{ role: 'rowheader' }= _('Tags')
.table-section.section-10{ role: 'rowheader' } Last contact .table-section.section-10{ role: 'rowheader' }= _('Last contact')
- @runners.each do |runner| - @runners.each do |runner|
= render "admin/runners/runner", runner: runner = render 'admin/runners/runner', runner: runner
= paginate @runners, theme: "gitlab" = paginate @runners, theme: 'gitlab'
- else - else
.nothing-here-block No runners found .nothing-here-block= _('No runners found')

View File

@ -3345,6 +3345,9 @@ msgstr ""
msgid "Last commit" msgid "Last commit"
msgstr "" msgstr ""
msgid "Last contact"
msgstr ""
msgid "Last edited %{date}" msgid "Last edited %{date}"
msgstr "" msgstr ""
@ -3850,6 +3853,9 @@ msgstr ""
msgid "No repository" msgid "No repository"
msgstr "" msgstr ""
msgid "No runners found"
msgstr ""
msgid "No schedules" msgid "No schedules"
msgstr "" msgstr ""
@ -4308,6 +4314,9 @@ msgstr ""
msgid "Preferences|Navigation theme" msgid "Preferences|Navigation theme"
msgstr "" msgstr ""
msgid "Press Enter or click to search"
msgstr ""
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
@ -4644,6 +4653,9 @@ msgstr ""
msgid "Real-time features" msgid "Real-time features"
msgstr "" msgstr ""
msgid "Recent searches"
msgstr ""
msgid "Reference:" msgid "Reference:"
msgstr "" msgstr ""
@ -4828,9 +4840,24 @@ msgstr ""
msgid "Run untagged jobs" msgid "Run untagged jobs"
msgstr "" msgstr ""
msgid "Runner cannot be assigned to other projects"
msgstr ""
msgid "Runner runs jobs from all unassigned projects"
msgstr ""
msgid "Runner runs jobs from all unassigned projects in its group"
msgstr ""
msgid "Runner runs jobs from assigned projects"
msgstr ""
msgid "Runner token" msgid "Runner token"
msgstr "" msgstr ""
msgid "Runner will not receive any new jobs"
msgstr ""
msgid "Runners" msgid "Runners"
msgstr "" msgstr ""
@ -4840,6 +4867,12 @@ msgstr ""
msgid "Runners can be placed on separate users, servers, and even on your local machine." msgid "Runners can be placed on separate users, servers, and even on your local machine."
msgstr "" msgstr ""
msgid "Runners can be placed on separate users, servers, even on your local machine."
msgstr ""
msgid "Runners currently online: %{active_runners_cnt}"
msgstr ""
msgid "Runners page" msgid "Runners page"
msgstr "" msgstr ""
@ -4912,6 +4945,9 @@ msgstr ""
msgid "Search milestones" msgid "Search milestones"
msgstr "" msgstr ""
msgid "Search or filter results..."
msgstr ""
msgid "Search or jump to…" msgid "Search or jump to…"
msgstr "" msgstr ""
@ -5982,6 +6018,9 @@ msgstr ""
msgid "Twitter" msgid "Twitter"
msgstr "" msgstr ""
msgid "Type"
msgstr ""
msgid "Unable to load the diff. %{button_try_again}" msgid "Unable to load the diff. %{button_try_again}"
msgstr "" msgstr ""
@ -6114,6 +6153,9 @@ msgstr ""
msgid "Verified" msgid "Verified"
msgstr "" msgstr ""
msgid "Version"
msgstr ""
msgid "View file @ " msgid "View file @ "
msgstr "" msgstr ""
@ -6378,6 +6420,9 @@ msgstr ""
msgid "You can only edit files when you are on a branch" msgid "You can only edit files when you are on a branch"
msgstr "" msgstr ""
msgid "You can reset runners registration token by pressing a button below."
msgstr ""
msgid "You can resolve the merge conflict using either the Interactive mode, by choosing %{use_ours} or %{use_theirs} buttons, or by editing the files directly. Commit these changes into %{branch_name}" msgid "You can resolve the merge conflict using either the Interactive mode, by choosing %{use_ours} or %{use_theirs} buttons, or by editing the files directly. Commit these changes into %{branch_name}"
msgstr "" msgstr ""
@ -6745,6 +6790,9 @@ msgstr ""
msgid "mrWidget|to be merged automatically when the pipeline succeeds" msgid "mrWidget|to be merged automatically when the pipeline succeeds"
msgstr "" msgstr ""
msgid "n/a"
msgstr ""
msgid "new merge request" msgid "new merge request"
msgstr "" msgstr ""