Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-08-06 03:09:53 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-08-06 03:09:53 +0300
commit631ed6dcca9d41d0dc24dd553065de1a0f8210f0 (patch)
treee644e0f962e7f6ce664e37d415edf0c584711cdb /app/models/concerns/relative_positioning.rb
parentad9eb72915f1be40da3ebe287274fe2bae62e46b (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/models/concerns/relative_positioning.rb')
-rw-r--r--app/models/concerns/relative_positioning.rb25
1 files changed, 20 insertions, 5 deletions
diff --git a/app/models/concerns/relative_positioning.rb b/app/models/concerns/relative_positioning.rb
index 1d89a4497d9..ca64907f04b 100644
--- a/app/models/concerns/relative_positioning.rb
+++ b/app/models/concerns/relative_positioning.rb
@@ -32,17 +32,32 @@ module RelativePositioning
class_methods do
def move_nulls_to_end(objects)
objects = objects.reject(&:relative_position)
-
return if objects.empty?
- max_relative_position = objects.first.max_relative_position
-
self.transaction do
+ max_relative_position = objects.first.max_relative_position
+
objects.each do |object|
relative_position = position_between(max_relative_position || START_POSITION, MAX_POSITION)
- object.relative_position = relative_position
+ object.update_column(:relative_position, relative_position)
+
max_relative_position = relative_position
- object.save(touch: false)
+ end
+ end
+ end
+
+ def move_nulls_to_start(objects)
+ objects = objects.reject(&:relative_position)
+ return if objects.empty?
+
+ self.transaction do
+ min_relative_position = objects.first.min_relative_position
+
+ objects.reverse_each do |object|
+ relative_position = position_between(MIN_POSITION, min_relative_position || START_POSITION)
+ object.update_column(:relative_position, relative_position)
+
+ min_relative_position = relative_position
end
end
end