From d028863eda8b97f6e4db129ef57f0d3a2130c9b3 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Wed, 4 May 2016 18:21:57 -0300 Subject: Sanitize milestones and label titles --- app/models/label.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index 60bdce32952..0b34911a4e9 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -117,6 +117,11 @@ class Label < ActiveRecord::Base LabelsHelper::text_color_for_bg(self.color) end + def title= value + value = Sanitize.clean(value.to_s) if value + write_attribute(:title, Sanitize.clean(value)) + end + private def label_format_reference(format = :id) -- cgit v1.2.1 From 32811d98fe2893a0671fe22c4aebf8bd254b7709 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Mon, 9 May 2016 11:58:20 -0300 Subject: Make model sanitization methods one liners --- app/models/label.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index 0b34911a4e9..c551ceef64e 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -117,9 +117,8 @@ class Label < ActiveRecord::Base LabelsHelper::text_color_for_bg(self.color) end - def title= value - value = Sanitize.clean(value.to_s) if value - write_attribute(:title, Sanitize.clean(value)) + def title=(value) + write_attribute(:title, Sanitize.clean(value.to_s)) if value.present? end private -- cgit v1.2.1 From f1479b56b71bef63517b90fcde99e6508e9c54af Mon Sep 17 00:00:00 2001 From: Jeroen van Baarsen Date: Mon, 9 May 2016 18:00:28 +0200 Subject: Remove the annotate gem and delete old annotations In 8278b763d96ef10c6494409b18b7eb541463af29 the default behaviour of annotation has changes, which was causing a lot of noise in diffs. We decided in #17382 that it is better to get rid of the whole annotate gem, and instead let people look at schema.rb for the columns in a table. Fixes: #17382 --- app/models/label.rb | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index 9a22398d952..83375db88cc 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -1,17 +1,3 @@ -# == Schema Information -# -# Table name: labels -# -# id :integer not null, primary key -# title :string -# color :string -# project_id :integer -# created_at :datetime -# updated_at :datetime -# template :boolean default(FALSE) -# description :string -# - class Label < ActiveRecord::Base include Referable include Subscribable -- cgit v1.2.1 From 0e2f26dd2a10ed876f96b0496dff2de6780eeaea Mon Sep 17 00:00:00 2001 From: Alfredo Sumaran Date: Mon, 2 May 2016 18:19:46 -0500 Subject: Prioritize labels functionality --- app/models/label.rb | 2 ++ 1 file changed, 2 insertions(+) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index e5ad11983be..59e7afe53f3 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -19,6 +19,7 @@ class Label < ActiveRecord::Base validates :color, color: true, allow_blank: false validates :project, presence: true, unless: Proc.new { |service| service.template? } + validates :priority, presence: false, default: false # Don't allow '?', '&', and ',' for label titles validates :title, @@ -29,6 +30,7 @@ class Label < ActiveRecord::Base default_scope { order(title: :asc) } scope :templates, -> { where(template: true) } + scope :prioritized, ->(value = true) { where(priority: value) } alias_attribute :name, :title -- cgit v1.2.1 From d8263b285193d9163089683eb77825f1cd673b14 Mon Sep 17 00:00:00 2001 From: Thijs Wouters Date: Mon, 14 Mar 2016 10:46:26 +0100 Subject: Sort by label priority MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- app/models/label.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index 59e7afe53f3..4437ca393ed 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -27,11 +27,28 @@ class Label < ActiveRecord::Base format: { with: /\A[^&\?,]+\z/ }, uniqueness: { scope: :project_id } + before_save :nillify_priority + default_scope { order(title: :asc) } scope :templates, -> { where(template: true) } scope :prioritized, ->(value = true) { where(priority: value) } + def self.high_priority(name, table_name, labels) + unfiltered = unscoped + .select("MIN(labels.priority)") + .joins("INNER JOIN label_links ON label_links.label_id = labels.id") + .where("label_links.target_type = '#{name}'") + .where("label_links.target_id = #{table_name}.id") + .where("labels.project_id = #{table_name}.project_id") + + if labels.empty? + unfiltered + else + unfiltered.where("labels.title NOT IN (?)", labels) + end + end + alias_attribute :name, :title def self.reference_prefix @@ -120,4 +137,10 @@ class Label < ActiveRecord::Base id end end + + def nillify_priority + unless self.priority.present? + self.priority = nil + end + end end -- cgit v1.2.1 From 499bb9f305e78d0e3488c2eee6328ce76af39920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Fri, 13 May 2016 17:26:18 +0200 Subject: Improve Issuable.order_labels_priority MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- app/models/label.rb | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index 4437ca393ed..7fd77880558 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -19,7 +19,6 @@ class Label < ActiveRecord::Base validates :color, color: true, allow_blank: false validates :project, presence: true, unless: Proc.new { |service| service.template? } - validates :priority, presence: false, default: false # Don't allow '?', '&', and ',' for label titles validates :title, @@ -32,21 +31,11 @@ class Label < ActiveRecord::Base default_scope { order(title: :asc) } scope :templates, -> { where(template: true) } - scope :prioritized, ->(value = true) { where(priority: value) } - - def self.high_priority(name, table_name, labels) - unfiltered = unscoped - .select("MIN(labels.priority)") - .joins("INNER JOIN label_links ON label_links.label_id = labels.id") - .where("label_links.target_type = '#{name}'") - .where("label_links.target_id = #{table_name}.id") - .where("labels.project_id = #{table_name}.project_id") - - if labels.empty? - unfiltered - else - unfiltered.where("labels.title NOT IN (?)", labels) - end + + def self.prioritized(bool = true) + query = bool ? where.not(priority: nil) : where(priority: nil) + + query.reorder(Gitlab::Database.nulls_last_order(:priority), :title) end alias_attribute :name, :title @@ -139,8 +128,6 @@ class Label < ActiveRecord::Base end def nillify_priority - unless self.priority.present? - self.priority = nil - end + self.priority = nil if priority.blank? end end -- cgit v1.2.1 From 8f0bf297676dac33ecc8ced10da5ae88f36a9ab0 Mon Sep 17 00:00:00 2001 From: Alfredo Sumaran Date: Thu, 2 Jun 2016 14:57:31 -0500 Subject: Add unprioritized scope --- app/models/label.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index 7fd77880558..9e04c5263bd 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -32,10 +32,12 @@ class Label < ActiveRecord::Base scope :templates, -> { where(template: true) } - def self.prioritized(bool = true) - query = bool ? where.not(priority: nil) : where(priority: nil) + def self.prioritized + where.not(priority: nil).reorder(Gitlab::Database.nulls_last_order(:priority), :title) + end - query.reorder(Gitlab::Database.nulls_last_order(:priority), :title) + def self.unprioritized + where(priority: nil).reorder(Gitlab::Database.nulls_last_order(:priority), :title) end alias_attribute :name, :title -- cgit v1.2.1 From f011f038cd6cd1fcb01a18de5774ef7be34d6cef Mon Sep 17 00:00:00 2001 From: Alfredo Sumaran Date: Thu, 2 Jun 2016 15:21:00 -0500 Subject: Update method name --- app/models/label.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index 9e04c5263bd..e4fc4f251d8 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -26,7 +26,7 @@ class Label < ActiveRecord::Base format: { with: /\A[^&\?,]+\z/ }, uniqueness: { scope: :project_id } - before_save :nillify_priority + before_save :nullify_priority default_scope { order(title: :asc) } @@ -129,7 +129,7 @@ class Label < ActiveRecord::Base end end - def nillify_priority + def nullify_priority self.priority = nil if priority.blank? end end -- cgit v1.2.1 From 4ac907ee77784006b32a6c918792d3a82a0bb5c8 Mon Sep 17 00:00:00 2001 From: Alfredo Sumaran Date: Thu, 2 Jun 2016 18:42:13 -0500 Subject: typo --- app/models/label.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index e4fc4f251d8..aed74d0bde1 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -33,7 +33,7 @@ class Label < ActiveRecord::Base scope :templates, -> { where(template: true) } def self.prioritized - where.not(priority: nil).reorder(Gitlab::Database.nulls_last_order(:priority), :title) + where.not(priority: nil).reorder(Gitlab::Database.nulls_last_order(:priority), :title) end def self.unprioritized -- cgit v1.2.1 From bf193eb78bd7022b58d6ceebd928f2b140205f65 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Mon, 6 Jun 2016 15:41:33 +0100 Subject: Remove unnecessary null-specific order --- app/models/label.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index aed74d0bde1..9760f1aefa9 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -33,11 +33,11 @@ class Label < ActiveRecord::Base scope :templates, -> { where(template: true) } def self.prioritized - where.not(priority: nil).reorder(Gitlab::Database.nulls_last_order(:priority), :title) + where.not(priority: nil).reorder(:title) end def self.unprioritized - where(priority: nil).reorder(Gitlab::Database.nulls_last_order(:priority), :title) + where(priority: nil).reorder(:title) end alias_attribute :name, :title -- cgit v1.2.1 From ee26c3cab4651c8876efc45b6a63539727e6a42e Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Tue, 7 Jun 2016 11:57:09 +0100 Subject: Fix label order by priority on labels page --- app/models/label.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/models/label.rb') diff --git a/app/models/label.rb b/app/models/label.rb index 9760f1aefa9..49c352cc239 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -33,11 +33,11 @@ class Label < ActiveRecord::Base scope :templates, -> { where(template: true) } def self.prioritized - where.not(priority: nil).reorder(:title) + where.not(priority: nil).reorder(:priority, :title) end def self.unprioritized - where(priority: nil).reorder(:title) + where(priority: nil) end alias_attribute :name, :title -- cgit v1.2.1