Merge branch 'fix-build-sort-order' into 'master'
Resolve "Sort order for pipeline build lists doesn't properly handle numbers" Closes #25428 See merge request !8277
This commit is contained in:
commit
77756efc22
|
@ -137,4 +137,10 @@ class CommitStatus < ActiveRecord::Base
|
|||
.new(self, current_user)
|
||||
.fabricate!
|
||||
end
|
||||
|
||||
def sortable_name
|
||||
name.split(/(\d+)/).map do |v|
|
||||
v =~ /\d+/ ? v.to_i : v
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- stage = local_assigns.fetch(:stage)
|
||||
- statuses = stage.statuses.latest
|
||||
- status_groups = statuses.sort_by(&:name).group_by(&:group_name)
|
||||
- status_groups = statuses.sort_by(&:sortable_name).group_by(&:group_name)
|
||||
%li.stage-column
|
||||
.stage-name
|
||||
%a{ name: stage.name }
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Sort numbers in build names more intelligently
|
||||
merge_request: 8277
|
||||
author:
|
|
@ -243,4 +243,23 @@ describe CommitStatus, models: true do
|
|||
.to be_a Gitlab::Ci::Status::Success
|
||||
end
|
||||
end
|
||||
|
||||
describe '#sortable_name' do
|
||||
tests = {
|
||||
'karma' => ['karma'],
|
||||
'karma 0 20' => ['karma ', 0, ' ', 20],
|
||||
'karma 10 20' => ['karma ', 10, ' ', 20],
|
||||
'karma 50:100' => ['karma ', 50, ':', 100],
|
||||
'karma 1.10' => ['karma ', 1, '.', 10],
|
||||
'karma 1.5.1' => ['karma ', 1, '.', 5, '.', 1],
|
||||
'karma 1 a' => ['karma ', 1, ' a']
|
||||
}
|
||||
|
||||
tests.each do |name, sortable_name|
|
||||
it "'#{name}' sorts as '#{sortable_name}'" do
|
||||
commit_status.name = name
|
||||
expect(commit_status.sortable_name).to eq(sortable_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue