convert admin runners table to responsive table

This commit is contained in:
Alexis Reigel 2018-07-17 09:59:45 +02:00
parent 34bdb74740
commit 7eee6cd2d5
No known key found for this signature in database
GPG Key ID: 55ADA7C7B683B329
3 changed files with 100 additions and 80 deletions

View File

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

View File

@ -92,24 +92,21 @@
%br
- if @runners.any?
.runners-content
.runners-content.content-list
.table-holder
%table.table
%thead
%tr
%th Type
%th Runner token
%th Description
%th Version
%th IP Address
%th Projects
%th Jobs
%th Tags
%th Last contact
%th
.gl-responsive-table-row.table-row-header{ role: 'row' }
.table-section.section-10{ role: 'rowheader' } Type
.table-section.section-10{ role: 'rowheader' } Runner token
.table-section.section-10{ role: 'rowheader' } Description
.table-section.section-10{ role: 'rowheader' } Version
.table-section.section-10{ role: 'rowheader' } IP Address
.table-section.section-10{ role: 'rowheader' } Projects
.table-section.section-10{ role: 'rowheader' } Jobs
.table-section.section-10{ role: 'rowheader' } Tags
.table-section.section-10{ role: 'rowheader' } Last contact
- @runners.each do |runner|
= render "admin/runners/runner", runner: runner
- @runners.each do |runner|
= render "admin/runners/runner", runner: runner
= paginate @runners, theme: "gitlab"
- else
.nothing-here-block No runners found

View File

@ -99,26 +99,22 @@ describe "Admin Runners", :js do
visit admin_runners_path
within '.runners-content tbody' do
within('tr:nth-child(1)') do
expect(page).to have_content 'runner-2'
end
within '.runners-content .gl-responsive-table-row:nth-child(2)' do
expect(page).to have_content 'runner-2'
end
within('tr:nth-child(2)') do
expect(page).to have_content 'runner-1'
end
within '.runners-content .gl-responsive-table-row:nth-child(3)' do
expect(page).to have_content 'runner-1'
end
sorting_by 'Last Contact'
within '.runners-content tbody' do
within('tr:nth-child(1)') do
expect(page).to have_content 'runner-1'
end
within '.runners-content .gl-responsive-table-row:nth-child(2)' do
expect(page).to have_content 'runner-1'
end
within('tr:nth-child(2)') do
expect(page).to have_content 'runner-2'
end
within '.runners-content .gl-responsive-table-row:nth-child(3)' do
expect(page).to have_content 'runner-2'
end
end
end