From 6fb9badcaef5152c60bf4091899a84b34f5cc1b8 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Tue, 29 Jul 2014 18:23:18 +0300
Subject: [PATCH] Replace project labels with tags to prevent name conflict
 with GitLab labels

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 app/controllers/dashboard_controller.rb           |  4 ++--
 app/controllers/projects_controller.rb            |  2 +-
 app/models/project.rb                             |  2 +-
 app/views/dashboard/_projects_filter.html.haml    | 12 ++++++------
 app/views/dashboard/projects.html.haml            |  4 ++--
 app/views/projects/edit.html.haml                 |  8 ++++----
 db/migrate/20140729145339_migrate_project_tags.rb |  9 +++++++++
 db/schema.rb                                      |  2 +-
 8 files changed, 26 insertions(+), 17 deletions(-)
 create mode 100644 db/migrate/20140729145339_migrate_project_tags.rb

diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb
index 233b91680f6..5aff526d1b5 100644
--- a/app/controllers/dashboard_controller.rb
+++ b/app/controllers/dashboard_controller.rb
@@ -46,11 +46,11 @@ class DashboardController < ApplicationController
     @projects = @projects.where(namespace_id: Group.find_by(name: params[:group])) if params[:group].present?
     @projects = @projects.where(visibility_level: params[:visibility_level]) if params[:visibility_level].present?
     @projects = @projects.includes(:namespace)
-    @projects = @projects.tagged_with(params[:label]) if params[:label].present?
+    @projects = @projects.tagged_with(params[:tag]) if params[:tag].present?
     @projects = @projects.sort(@sort = params[:sort])
     @projects = @projects.page(params[:page]).per(30)
 
-    @labels = current_user.authorized_projects.tags_on(:labels)
+    @tags = current_user.authorized_projects.tags_on(:tags)
     @groups = current_user.authorized_groups
   end
 
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 1b1b0eb7ad1..f23afaf28fa 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -196,7 +196,7 @@ class ProjectsController < ApplicationController
 
   def project_params
     params.require(:project).permit(
-      :name, :path, :description, :issues_tracker, :label_list,
+      :name, :path, :description, :issues_tracker, :tag_list,
       :issues_enabled, :merge_requests_enabled, :snippets_enabled, :issues_tracker_id, :default_branch,
       :wiki_enabled, :visibility_level, :import_url, :last_activity_at, :namespace_id
     )
diff --git a/app/models/project.rb b/app/models/project.rb
index 73a2b42492e..a4627d6d4d1 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -42,7 +42,7 @@ class Project < ActiveRecord::Base
 
   ActsAsTaggableOn.strict_case_match = true
 
-  acts_as_taggable_on :labels, :issues_default_labels
+  acts_as_taggable_on :tags, :issues_default_labels
 
   attr_accessor :new_default_branch
 
diff --git a/app/views/dashboard/_projects_filter.html.haml b/app/views/dashboard/_projects_filter.html.haml
index 8c9893ba84f..e4fa2d59e8a 100644
--- a/app/views/dashboard/_projects_filter.html.haml
+++ b/app/views/dashboard/_projects_filter.html.haml
@@ -44,12 +44,12 @@
 
 
 
-- if @labels.present?
+- if @tags.present?
   %fieldset
-    %legend Labels
+    %legend Tags
     %ul.nav.nav-pills.nav-stacked.nav-small
-      - @labels.each do |label|
-        %li{ class: (label.name == params[:label]) ? 'active' : 'light' }
-          = link_to projects_dashboard_filter_path(scope: params[:scope], label: label.name) do
+      - @tags.each do |tag|
+        %li{ class: (tag.name == params[:tag]) ? 'active' : 'light' }
+          = link_to projects_dashboard_filter_path(scope: params[:scope], tag: tag.name) do
             %i.icon-tag
-            = label.name
+            = tag.name
diff --git a/app/views/dashboard/projects.html.haml b/app/views/dashboard/projects.html.haml
index e1c9a5941e9..2714ebc53de 100644
--- a/app/views/dashboard/projects.html.haml
+++ b/app/views/dashboard/projects.html.haml
@@ -54,10 +54,10 @@
                 %span.label
                   %i.icon-archive
                   Archived
-              - project.labels.each do |label|
+              - project.tags.each do |tag|
                 %span.label.label-info
                   %i.icon-tag
-                  = label.name
+                  = tag.name
             - if project.description.present?
               %p= truncate project.description, length: 100
             .last-activity
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index 6eaa3e7559a..99b6d8ad288 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -33,12 +33,12 @@
 
           %fieldset.features
             %legend
-              Labels:
+              Tags:
             .form-group
-              = f.label :label_list, "Labels", class: 'control-label'
+              = f.label :tag_list, "Tags", class: 'control-label'
               .col-sm-10
-                = f.text_field :label_list, maxlength: 2000, class: "form-control"
-                %p.hint Separate labels with commas.
+                = f.text_field :tag_list, maxlength: 2000, class: "form-control"
+                %p.hint Separate tags with commas.
 
           %fieldset.features
             %legend
diff --git a/db/migrate/20140729145339_migrate_project_tags.rb b/db/migrate/20140729145339_migrate_project_tags.rb
new file mode 100644
index 00000000000..5760e4bfeaa
--- /dev/null
+++ b/db/migrate/20140729145339_migrate_project_tags.rb
@@ -0,0 +1,9 @@
+class MigrateProjectTags < ActiveRecord::Migration
+  def up
+    ActsAsTaggableOn::Tagging.where(taggable_type: 'Project', context: 'labels').update_all(context: 'tags')
+  end
+
+  def down
+    ActsAsTaggableOn::Tagging.where(taggable_type: 'Project', context: 'tags').update_all(context: 'labels')
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 7ab7982feab..77dac2954d4 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20140729140420) do
+ActiveRecord::Schema.define(version: 20140729145339) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
-- 
GitLab