Commit b765a7958d5d8602d0f8cc3b23b07cfa4f304208
1 parent
112dc875
Exists in
master
and in
4 other branches
Move snippets to own tab as feature. Make it disabled for new projects by default
Showing
7 changed files
with
25 additions
and
3 deletions
Show diff stats
app/contexts/projects/create_context.rb
| ... | ... | @@ -32,8 +32,9 @@ module Projects |
| 32 | 32 | @project.namespace_id = current_user.namespace_id |
| 33 | 33 | end |
| 34 | 34 | |
| 35 | - # Disable wall by default | |
| 35 | + # Disable less important features by default | |
| 36 | 36 | @project.wall_enabled = false |
| 37 | + @project.snippets_enabled = false | |
| 37 | 38 | |
| 38 | 39 | @project.creator = current_user |
| 39 | 40 | ... | ... |
app/controllers/snippets_controller.rb
| 1 | 1 | class SnippetsController < ProjectResourceController |
| 2 | + before_filter :module_enabled | |
| 2 | 3 | before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw] |
| 3 | 4 | |
| 4 | 5 | # Allow read any snippet |
| ... | ... | @@ -84,4 +85,8 @@ class SnippetsController < ProjectResourceController |
| 84 | 85 | def authorize_admin_snippet! |
| 85 | 86 | return render_404 unless can?(current_user, :admin_snippet, @snippet) |
| 86 | 87 | end |
| 88 | + | |
| 89 | + def module_enabled | |
| 90 | + return render_404 unless @project.snippet_enabled | |
| 91 | + end | |
| 87 | 92 | end | ... | ... |
app/models/project.rb
| ... | ... | @@ -29,7 +29,7 @@ class Project < ActiveRecord::Base |
| 29 | 29 | class TransferError < StandardError; end |
| 30 | 30 | |
| 31 | 31 | attr_accessible :name, :path, :description, :default_branch, :issues_tracker, |
| 32 | - :issues_enabled, :wall_enabled, :merge_requests_enabled, :issues_tracker_id, | |
| 32 | + :issues_enabled, :wall_enabled, :merge_requests_enabled, :snippets_enabled, :issues_tracker_id, | |
| 33 | 33 | :wiki_enabled, :public, :import_url, as: [:default, :admin] |
| 34 | 34 | |
| 35 | 35 | attr_accessible :namespace_id, :creator_id, as: :admin | ... | ... |
app/views/layouts/project_resource.html.haml
| ... | ... | @@ -43,6 +43,10 @@ |
| 43 | 43 | = nav_link(path: 'projects#wall') do |
| 44 | 44 | = link_to 'Wall', wall_project_path(@project) |
| 45 | 45 | |
| 46 | + - if @project.snippets_enabled | |
| 47 | + = nav_link(controller: :snippets) do | |
| 48 | + = link_to 'Snippets', project_snippets_path(@project) | |
| 49 | + | |
| 46 | 50 | - if can? current_user, :admin_project, @project |
| 47 | 51 | = nav_link(html_options: {class: "#{project_tab_class}"}) do |
| 48 | 52 | = link_to edit_project_path(@project), class: "stat-tab tab " do | ... | ... |
app/views/projects/_form.html.haml
| ... | ... | @@ -88,6 +88,12 @@ |
| 88 | 88 | %span.descr Simple chat system for broadcasting inside project |
| 89 | 89 | |
| 90 | 90 | .control-group |
| 91 | + = f.label :snippets_enabled, "Snippets", class: 'control-label' | |
| 92 | + .controls | |
| 93 | + = f.check_box :snippets_enabled | |
| 94 | + %span.descr Share code pastes with others out of git repository | |
| 95 | + | |
| 96 | + .control-group | |
| 91 | 97 | = f.label :wiki_enabled, "Wiki", class: 'control-label' |
| 92 | 98 | .controls |
| 93 | 99 | = f.check_box :wiki_enabled | ... | ... |
db/schema.rb
| ... | ... | @@ -11,7 +11,7 @@ |
| 11 | 11 | # |
| 12 | 12 | # It's strongly recommended to check this file into your version control system. |
| 13 | 13 | |
| 14 | -ActiveRecord::Schema.define(:version => 20130315124931) do | |
| 14 | +ActiveRecord::Schema.define(:version => 20130318212250) do | |
| 15 | 15 | |
| 16 | 16 | create_table "events", :force => true do |t| |
| 17 | 17 | t.string "target_type" |
| ... | ... | @@ -155,6 +155,7 @@ ActiveRecord::Schema.define(:version => 20130315124931) do |
| 155 | 155 | t.boolean "public", :default => false, :null => false |
| 156 | 156 | t.string "issues_tracker", :default => "gitlab", :null => false |
| 157 | 157 | t.string "issues_tracker_id" |
| 158 | + t.boolean "snippets_enabled", :default => true, :null => false | |
| 158 | 159 | end |
| 159 | 160 | |
| 160 | 161 | add_index "projects", ["creator_id"], :name => "index_projects_on_owner_id" | ... | ... |