summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-03-18 23:33:41 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-03-18 23:33:41 +0200
commitb765a7958d5d8602d0f8cc3b23b07cfa4f304208 (patch)
tree412361c9ec0b838abc0cd38527e4d34991dc6be2
parent112dc875ba325cfb0b223165c20d8424698e7791 (diff)
downloadgitlab-ce-b765a7958d5d8602d0f8cc3b23b07cfa4f304208.tar.gz
Move snippets to own tab as feature. Make it disabled for new projects by default
-rw-r--r--app/contexts/projects/create_context.rb3
-rw-r--r--app/controllers/snippets_controller.rb5
-rw-r--r--app/models/project.rb2
-rw-r--r--app/views/layouts/project_resource.html.haml4
-rw-r--r--app/views/projects/_form.html.haml6
-rw-r--r--db/migrate/20130318212250_add_snippets_to_features.rb5
-rw-r--r--db/schema.rb3
7 files changed, 25 insertions, 3 deletions
diff --git a/app/contexts/projects/create_context.rb b/app/contexts/projects/create_context.rb
index da666a71f0d..56c4e1c51da 100644
--- a/app/contexts/projects/create_context.rb
+++ b/app/contexts/projects/create_context.rb
@@ -32,8 +32,9 @@ module Projects
@project.namespace_id = current_user.namespace_id
end
- # Disable wall by default
+ # Disable less important features by default
@project.wall_enabled = false
+ @project.snippets_enabled = false
@project.creator = current_user
diff --git a/app/controllers/snippets_controller.rb b/app/controllers/snippets_controller.rb
index 26898abfa82..d356479330b 100644
--- a/app/controllers/snippets_controller.rb
+++ b/app/controllers/snippets_controller.rb
@@ -1,4 +1,5 @@
class SnippetsController < ProjectResourceController
+ before_filter :module_enabled
before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw]
# Allow read any snippet
@@ -84,4 +85,8 @@ class SnippetsController < ProjectResourceController
def authorize_admin_snippet!
return render_404 unless can?(current_user, :admin_snippet, @snippet)
end
+
+ def module_enabled
+ return render_404 unless @project.snippet_enabled
+ end
end
diff --git a/app/models/project.rb b/app/models/project.rb
index 458ef18376c..b13b2918652 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -29,7 +29,7 @@ class Project < ActiveRecord::Base
class TransferError < StandardError; end
attr_accessible :name, :path, :description, :default_branch, :issues_tracker,
- :issues_enabled, :wall_enabled, :merge_requests_enabled, :issues_tracker_id,
+ :issues_enabled, :wall_enabled, :merge_requests_enabled, :snippets_enabled, :issues_tracker_id,
:wiki_enabled, :public, :import_url, as: [:default, :admin]
attr_accessible :namespace_id, :creator_id, as: :admin
diff --git a/app/views/layouts/project_resource.html.haml b/app/views/layouts/project_resource.html.haml
index 3f7c4322d63..7de5cb61273 100644
--- a/app/views/layouts/project_resource.html.haml
+++ b/app/views/layouts/project_resource.html.haml
@@ -43,6 +43,10 @@
= nav_link(path: 'projects#wall') do
= link_to 'Wall', wall_project_path(@project)
+ - if @project.snippets_enabled
+ = nav_link(controller: :snippets) do
+ = link_to 'Snippets', project_snippets_path(@project)
+
- if can? current_user, :admin_project, @project
= nav_link(html_options: {class: "#{project_tab_class}"}) do
= link_to edit_project_path(@project), class: "stat-tab tab " do
diff --git a/app/views/projects/_form.html.haml b/app/views/projects/_form.html.haml
index 25901456ab1..38384b775f8 100644
--- a/app/views/projects/_form.html.haml
+++ b/app/views/projects/_form.html.haml
@@ -88,6 +88,12 @@
%span.descr Simple chat system for broadcasting inside project
.control-group
+ = f.label :snippets_enabled, "Snippets", class: 'control-label'
+ .controls
+ = f.check_box :snippets_enabled
+ %span.descr Share code pastes with others out of git repository
+
+ .control-group
= f.label :wiki_enabled, "Wiki", class: 'control-label'
.controls
= f.check_box :wiki_enabled
diff --git a/db/migrate/20130318212250_add_snippets_to_features.rb b/db/migrate/20130318212250_add_snippets_to_features.rb
new file mode 100644
index 00000000000..ad0b4434c43
--- /dev/null
+++ b/db/migrate/20130318212250_add_snippets_to_features.rb
@@ -0,0 +1,5 @@
+class AddSnippetsToFeatures < ActiveRecord::Migration
+ def change
+ add_column :projects, :snippets_enabled, :boolean, null: false, default: true
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 80c61a4fd6a..e4349ac4bf7 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20130315124931) do
+ActiveRecord::Schema.define(:version => 20130318212250) do
create_table "events", :force => true do |t|
t.string "target_type"
@@ -155,6 +155,7 @@ ActiveRecord::Schema.define(:version => 20130315124931) do
t.boolean "public", :default => false, :null => false
t.string "issues_tracker", :default => "gitlab", :null => false
t.string "issues_tracker_id"
+ t.boolean "snippets_enabled", :default => true, :null => false
end
add_index "projects", ["creator_id"], :name => "index_projects_on_owner_id"