Commit 1355ede49d02e2a7b1715a3ed6bd7389bfedf6bc

Authored by Dmitriy Zaporozhets
1 parent a5cbb4cb

Wipe wall notes feature

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
@@ -33,6 +33,7 @@ v 7.0.0 @@ -33,6 +33,7 @@ v 7.0.0
33 - Overall performance improvements 33 - Overall performance improvements
34 - Skip init script check on omnibus-gitlab 34 - Skip init script check on omnibus-gitlab
35 - Be more selective when killing stray Sidekiqs 35 - Be more selective when killing stray Sidekiqs
  36 + - Remove wall feature (no data loss - you can take it from database)
36 37
37 v 6.9.2 38 v 6.9.2
38 - Revert the commit that broke the LDAP user filter 39 - Revert the commit that broke the LDAP user filter
app/assets/javascripts/dispatcher.js.coffee
@@ -34,8 +34,6 @@ class Dispatcher @@ -34,8 +34,6 @@ class Dispatcher
34 new Activities() 34 new Activities()
35 when 'projects:new', 'projects:edit' 35 when 'projects:new', 'projects:edit'
36 new Project() 36 new Project()
37 - when 'projects:walls:show'  
38 - new Wall(project_id)  
39 when 'projects:teams:members:index' 37 when 'projects:teams:members:index'
40 new TeamMembers() 38 new TeamMembers()
41 when 'groups:members' 39 when 'groups:members'
app/assets/javascripts/wall.js.coffee
@@ -1,85 +0,0 @@ @@ -1,85 +0,0 @@
1 -class Wall  
2 - constructor: (project_id) ->  
3 - @project_id = project_id  
4 - @note_ids = []  
5 - @getContent()  
6 - @initRefresh()  
7 - @initForm()  
8 -  
9 - #  
10 - # Gets an initial set of notes.  
11 - #  
12 - getContent: ->  
13 - Api.notes @project_id, (notes) =>  
14 - $.each notes, (i, note) =>  
15 - # render note if it not present in loaded list  
16 - # or skip if rendered  
17 - if $.inArray(note.id, @note_ids) == -1  
18 - @note_ids.push(note.id)  
19 - @renderNote(note)  
20 - @scrollDown()  
21 - $("abbr.timeago").timeago()  
22 -  
23 - initRefresh: ->  
24 - setInterval =>  
25 - @refresh()  
26 - , 10000  
27 -  
28 - refresh: ->  
29 - @getContent()  
30 -  
31 - scrollDown: ->  
32 - notes = $('ul.notes')  
33 - $('body, html').scrollTop(notes.height())  
34 -  
35 - initForm: ->  
36 - form = $('.wall-note-form')  
37 - form.find("#target_type").val('wall')  
38 -  
39 - form.on 'ajax:success', =>  
40 - @refresh()  
41 - form.find(".js-note-text").val("").trigger("input")  
42 -  
43 - form.on 'ajax:complete', ->  
44 - form.find(".js-comment-button").removeAttr('disabled')  
45 - form.find(".js-comment-button").removeClass('disabled')  
46 -  
47 - form.on "click", ".js-choose-note-attachment-button", ->  
48 - form.find(".js-note-attachment-input").click()  
49 -  
50 - form.on "change", ".js-note-attachment-input", ->  
51 - filename = $(this).val().replace(/^.*[\\\/]/, '')  
52 - form.find(".js-attachment-filename").text(filename)  
53 -  
54 - form.find('.note_text').keydown (e) ->  
55 - if e.ctrlKey && e.keyCode == 13  
56 - form.find('.js-comment-button').submit()  
57 -  
58 - form.show()  
59 -  
60 - renderNote: (note) ->  
61 - template = @noteTemplate()  
62 - template = template.replace('{{author_name}}', note.author.name)  
63 - template = template.replace(/{{created_at}}/g, note.created_at)  
64 - template = template.replace('{{text}}', simpleFormat(note.body))  
65 -  
66 - if note.attachment  
67 - file = '<i class="icon-paper-clip"/><a href="' + gon.relative_url_root + '/files/note/' + note.id + '/' + note.attachment + '">' + note.attachment + '</a>'  
68 - else  
69 - file = ''  
70 - template = template.replace('{{file}}', file)  
71 -  
72 -  
73 - $('ul.notes').append(template)  
74 -  
75 - noteTemplate: ->  
76 - return '<li>  
77 - <strong class="wall-author">{{author_name}}</strong>  
78 - <span class="wall-text">  
79 - {{text}}  
80 - <span class="wall-file">{{file}}</span>  
81 - </span>  
82 - <abbr class="timeago" title="{{created_at}}">{{created_at}}</abbr>  
83 - </li>'  
84 -  
85 -@Wall = Wall  
app/assets/stylesheets/sections/wall.scss
@@ -1,55 +0,0 @@ @@ -1,55 +0,0 @@
1 -.wall-page {  
2 - .wall-note-form {  
3 - @extend .col-md-12;  
4 -  
5 - margin: 0;  
6 - height: 140px;  
7 - background: #F9F9F9;  
8 - position: fixed;  
9 - bottom: 0px;  
10 - padding: 3px;  
11 - padding-bottom: 25px;  
12 - border: 1px solid #DDD;  
13 - }  
14 -  
15 - .notes {  
16 - margin-bottom: 160px;  
17 - background: #FFE;  
18 - border: 1px solid #EED;  
19 -  
20 - > li {  
21 - @extend .clearfix;  
22 - border-bottom: 1px solid #EED;  
23 - padding: 10px;  
24 - }  
25 -  
26 - .wall-author {  
27 - color: #666;  
28 - float: left;  
29 - font-size: 12px;  
30 - width: 120px;  
31 - text-overflow: ellipsis;  
32 - white-space: nowrap;  
33 - overflow: hidden;  
34 - }  
35 -  
36 - .wall-text {  
37 - border-left: 1px solid #CCC;  
38 - margin-left: 10px;  
39 - padding-left: 10px;  
40 - float: left;  
41 - width: 75%;  
42 - }  
43 -  
44 - .wall-file {  
45 - margin-left: 8px;  
46 - background: #EEE;  
47 - }  
48 -  
49 - abbr {  
50 - float: right;  
51 - color: #AAA;  
52 - border: none;  
53 - }  
54 - }  
55 -}  
app/controllers/projects/walls_controller.rb
@@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
1 -class Projects::WallsController < Projects::ApplicationController  
2 - before_filter :module_enabled  
3 -  
4 - respond_to :js, :html  
5 -  
6 - def show  
7 - @note = @project.notes.new  
8 -  
9 - respond_to do |format|  
10 - format.html  
11 - end  
12 - end  
13 -  
14 - protected  
15 -  
16 - def module_enabled  
17 - return render_404 unless @project.wall_enabled  
18 - end  
19 -end  
20 -  
app/helpers/events_helper.rb
@@ -109,8 +109,6 @@ module EventsHelper @@ -109,8 +109,6 @@ module EventsHelper
109 "#{event.note_target_type} ##{truncate event.note_target_iid}" 109 "#{event.note_target_type} ##{truncate event.note_target_iid}"
110 end 110 end
111 end 111 end
112 - elsif event.wall_note?  
113 - link_to 'wall', project_wall_path(event.project)  
114 else 112 else
115 content_tag :strong do 113 content_tag :strong do
116 "(deleted)" 114 "(deleted)"
app/helpers/projects_helper.rb
@@ -139,7 +139,7 @@ module ProjectsHelper @@ -139,7 +139,7 @@ module ProjectsHelper
139 nav_tabs << :settings 139 nav_tabs << :settings
140 end 140 end
141 141
142 - [:issues, :wiki, :wall, :snippets].each do |feature| 142 + [:issues, :wiki, :snippets].each do |feature|
143 nav_tabs << feature if project.send :"#{feature}_enabled" 143 nav_tabs << feature if project.send :"#{feature}_enabled"
144 end 144 end
145 145
app/helpers/search_helper.rb
@@ -61,7 +61,6 @@ module SearchHelper @@ -61,7 +61,6 @@ module SearchHelper
61 { label: "#{prefix} - Milestones", url: project_milestones_path(@project) }, 61 { label: "#{prefix} - Milestones", url: project_milestones_path(@project) },
62 { label: "#{prefix} - Snippets", url: project_snippets_path(@project) }, 62 { label: "#{prefix} - Snippets", url: project_snippets_path(@project) },
63 { label: "#{prefix} - Team", url: project_team_index_path(@project) }, 63 { label: "#{prefix} - Team", url: project_team_index_path(@project) },
64 - { label: "#{prefix} - Wall", url: project_wall_path(@project) },  
65 { label: "#{prefix} - Wiki", url: project_wikis_path(@project) }, 64 { label: "#{prefix} - Wiki", url: project_wikis_path(@project) },
66 ] 65 ]
67 else 66 else
app/mailers/emails/notes.rb
@@ -32,14 +32,5 @@ module Emails @@ -32,14 +32,5 @@ module Emails
32 cc: recipient(recipient_id), 32 cc: recipient(recipient_id),
33 subject: subject("#{@merge_request.title} (##{@merge_request.iid})")) 33 subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
34 end 34 end
35 -  
36 - def note_wall_email(recipient_id, note_id)  
37 - @note = Note.find(note_id)  
38 - @project = @note.project  
39 - @target_url = project_wall_url(@note.project, anchor: "note_#{@note.id}")  
40 - mail(from: sender(@note.author_id),  
41 - cc: recipient(recipient_id),  
42 - subject: subject("Note on wall"))  
43 - end  
44 end 35 end
45 end 36 end
app/models/event.rb
@@ -286,10 +286,6 @@ class Event &lt; ActiveRecord::Base @@ -286,10 +286,6 @@ class Event &lt; ActiveRecord::Base
286 end.to_s 286 end.to_s
287 end 287 end
288 288
289 - def wall_note?  
290 - target.noteable_type.blank?  
291 - end  
292 -  
293 def note_target_type 289 def note_target_type
294 if target.noteable_type.present? 290 if target.noteable_type.present?
295 target.noteable_type.titleize 291 target.noteable_type.titleize
app/models/note.rb
@@ -251,10 +251,6 @@ class Note &lt; ActiveRecord::Base @@ -251,10 +251,6 @@ class Note &lt; ActiveRecord::Base
251 for_merge_request? && for_diff_line? 251 for_merge_request? && for_diff_line?
252 end 252 end
253 253
254 - def for_wall?  
255 - noteable_type.blank?  
256 - end  
257 -  
258 # override to return commits, which are not active record 254 # override to return commits, which are not active record
259 def noteable 255 def noteable
260 if for_commit? 256 if for_commit?
@@ -295,8 +291,6 @@ class Note &lt; ActiveRecord::Base @@ -295,8 +291,6 @@ class Note &lt; ActiveRecord::Base
295 def noteable_type_name 291 def noteable_type_name
296 if noteable_type.present? 292 if noteable_type.present?
297 noteable_type.downcase 293 noteable_type.downcase
298 - else  
299 - "wall"  
300 end 294 end
301 end 295 end
302 296
app/models/project.rb
@@ -31,7 +31,6 @@ class Project &lt; ActiveRecord::Base @@ -31,7 +31,6 @@ class Project &lt; ActiveRecord::Base
31 31
32 default_value_for :archived, false 32 default_value_for :archived, false
33 default_value_for :issues_enabled, true 33 default_value_for :issues_enabled, true
34 - default_value_for :wall_enabled, true  
35 default_value_for :merge_requests_enabled, true 34 default_value_for :merge_requests_enabled, true
36 default_value_for :wiki_enabled, true 35 default_value_for :wiki_enabled, true
37 default_value_for :snippets_enabled, true 36 default_value_for :snippets_enabled, true
@@ -39,7 +38,7 @@ class Project &lt; ActiveRecord::Base @@ -39,7 +38,7 @@ class Project &lt; ActiveRecord::Base
39 ActsAsTaggableOn.strict_case_match = true 38 ActsAsTaggableOn.strict_case_match = true
40 39
41 attr_accessible :name, :path, :description, :issues_tracker, :label_list, 40 attr_accessible :name, :path, :description, :issues_tracker, :label_list,
42 - :issues_enabled, :wall_enabled, :merge_requests_enabled, :snippets_enabled, :issues_tracker_id, 41 + :issues_enabled, :merge_requests_enabled, :snippets_enabled, :issues_tracker_id,
43 :wiki_enabled, :visibility_level, :import_url, :last_activity_at, as: [:default, :admin] 42 :wiki_enabled, :visibility_level, :import_url, :last_activity_at, as: [:default, :admin]
44 43
45 attr_accessible :namespace_id, :creator_id, as: :admin 44 attr_accessible :namespace_id, :creator_id, as: :admin
@@ -98,7 +97,7 @@ class Project &lt; ActiveRecord::Base @@ -98,7 +97,7 @@ class Project &lt; ActiveRecord::Base
98 exclusion: { in: Gitlab::Blacklist.path }, 97 exclusion: { in: Gitlab::Blacklist.path },
99 format: { with: Gitlab::Regex.path_regex, 98 format: { with: Gitlab::Regex.path_regex,
100 message: "only letters, digits & '_' '-' '.' allowed. Letter or digit should be first" } 99 message: "only letters, digits & '_' '-' '.' allowed. Letter or digit should be first" }
101 - validates :issues_enabled, :wall_enabled, :merge_requests_enabled, 100 + validates :issues_enabled, :merge_requests_enabled,
102 :wiki_enabled, inclusion: { in: [true, false] } 101 :wiki_enabled, inclusion: { in: [true, false] }
103 validates :issues_tracker_id, length: { maximum: 255 }, allow_blank: true 102 validates :issues_tracker_id, length: { maximum: 255 }, allow_blank: true
104 validates :namespace, presence: true 103 validates :namespace, presence: true
app/observers/note_observer.rb
@@ -3,12 +3,9 @@ class NoteObserver &lt; BaseObserver @@ -3,12 +3,9 @@ class NoteObserver &lt; BaseObserver
3 notification.new_note(note) 3 notification.new_note(note)
4 4
5 # Skip system notes, like status changes and cross-references. 5 # Skip system notes, like status changes and cross-references.
6 - # Skip wall notes to prevent spamming of dashboard  
7 - if note.noteable_type.present? && !note.system 6 + unless note.system
8 event_service.leave_note(note, note.author) 7 event_service.leave_note(note, note.author)
9 - end  
10 8
11 - unless note.system?  
12 # Create a cross-reference note if this Note contains GFM that names an 9 # Create a cross-reference note if this Note contains GFM that names an
13 # issue, merge request, or commit. 10 # issue, merge request, or commit.
14 note.references.each do |mentioned| 11 note.references.each do |mentioned|
app/services/notification_service.rb
@@ -106,7 +106,6 @@ class NotificationService @@ -106,7 +106,6 @@ class NotificationService
106 # TODO: split on methods and refactor 106 # TODO: split on methods and refactor
107 # 107 #
108 def new_note(note) 108 def new_note(note)
109 - # ignore wall messages  
110 return true unless note.noteable_type.present? 109 return true unless note.noteable_type.present?
111 110
112 # ignore gitlab service messages 111 # ignore gitlab service messages
app/services/projects/create_service.rb
@@ -19,7 +19,6 @@ module Projects @@ -19,7 +19,6 @@ module Projects
19 default_opts = { 19 default_opts = {
20 issues_enabled: default_features.issues, 20 issues_enabled: default_features.issues,
21 wiki_enabled: default_features.wiki, 21 wiki_enabled: default_features.wiki,
22 - wall_enabled: default_features.wall,  
23 snippets_enabled: default_features.snippets, 22 snippets_enabled: default_features.snippets,
24 merge_requests_enabled: default_features.merge_requests, 23 merge_requests_enabled: default_features.merge_requests,
25 visibility_level: default_features.visibility_level 24 visibility_level: default_features.visibility_level
app/views/layouts/nav/_project.html.haml
@@ -36,10 +36,6 @@ @@ -36,10 +36,6 @@
36 = nav_link(controller: :wikis) do 36 = nav_link(controller: :wikis) do
37 = link_to 'Wiki', project_wiki_path(@project, :home) 37 = link_to 'Wiki', project_wiki_path(@project, :home)
38 38
39 - - if project_nav_tab? :wall  
40 - = nav_link(controller: :walls) do  
41 - = link_to 'Wall', project_wall_path(@project)  
42 -  
43 - if project_nav_tab? :snippets 39 - if project_nav_tab? :snippets
44 = nav_link(controller: :snippets) do 40 = nav_link(controller: :snippets) do
45 = link_to 'Snippets', project_snippets_path(@project) 41 = link_to 'Snippets', project_snippets_path(@project)
app/views/notify/note_wall_email.html.haml
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -= render 'note_message'  
app/views/notify/note_wall_email.text.erb
@@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
1 -New message on the project wall <%= @note.project %>  
2 -  
3 -<%= url_for(project_wall_url(@note.project, anchor: "note_#{@note.id}")) %>  
4 -  
5 -  
6 -<%= @note.author_name %>  
7 -  
8 -<%= @note.note %>  
9 -  
app/views/projects/edit.html.haml
@@ -74,13 +74,6 @@ @@ -74,13 +74,6 @@
74 %span.descr Pages for project documentation 74 %span.descr Pages for project documentation
75 75
76 .form-group 76 .form-group
77 - = f.label :wall_enabled, "Wall", class: 'control-label'  
78 - .col-sm-10  
79 - .checkbox  
80 - = f.check_box :wall_enabled  
81 - %span.descr Simple chat system for broadcasting inside project  
82 -  
83 - .form-group  
84 = f.label :snippets_enabled, "Snippets", class: 'control-label' 77 = f.label :snippets_enabled, "Snippets", class: 'control-label'
85 .col-sm-10 78 .col-sm-10
86 .checkbox 79 .checkbox
app/views/projects/walls/show.html.haml
@@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
1 -%div.wall-page  
2 - %ul.notes  
3 -  
4 - - if can? current_user, :write_note, @project  
5 - .note-form-holder  
6 - = form_for [@project, @note], remote: true, html: { multipart: true, id: nil, class: "new_note wall-note-form" }, authenticity_token: true do |f|  
7 - = note_target_fields  
8 - .note_text_and_preview  
9 - = f.text_area :note, size: 255, class: 'note_text js-note-text js-gfm-input turn-on'  
10 - .note-form-actions  
11 - .buttons  
12 - = f.submit 'Add Comment', class: "btn comment-btn btn-grouped js-comment-button"  
13 -  
14 - .note-form-option  
15 - %a.choose-btn.btn.btn-small.js-choose-note-attachment-button  
16 - %i.icon-paper-clip  
17 - %span Choose File ...  
18 - &nbsp;  
19 - %span.file_name.js-attachment-filename File name...  
20 - = f.file_field :attachment, class: "js-note-attachment-input hidden"  
21 -  
22 - .hint.pull-right CTRL + Enter to send message  
23 - .clearfix  
config/gitlab.yml.example
@@ -73,7 +73,6 @@ production: &amp;base @@ -73,7 +73,6 @@ production: &amp;base
73 issues: true 73 issues: true
74 merge_requests: true 74 merge_requests: true
75 wiki: true 75 wiki: true
76 - wall: false  
77 snippets: false 76 snippets: false
78 visibility_level: "private" # can be "private" | "internal" | "public" 77 visibility_level: "private" # can be "private" | "internal" | "public"
79 78
config/initializers/1_settings.rb
@@ -95,7 +95,6 @@ Settings.gitlab[&#39;default_projects_features&#39;] ||= {} @@ -95,7 +95,6 @@ Settings.gitlab[&#39;default_projects_features&#39;] ||= {}
95 Settings.gitlab.default_projects_features['issues'] = true if Settings.gitlab.default_projects_features['issues'].nil? 95 Settings.gitlab.default_projects_features['issues'] = true if Settings.gitlab.default_projects_features['issues'].nil?
96 Settings.gitlab.default_projects_features['merge_requests'] = true if Settings.gitlab.default_projects_features['merge_requests'].nil? 96 Settings.gitlab.default_projects_features['merge_requests'] = true if Settings.gitlab.default_projects_features['merge_requests'].nil?
97 Settings.gitlab.default_projects_features['wiki'] = true if Settings.gitlab.default_projects_features['wiki'].nil? 97 Settings.gitlab.default_projects_features['wiki'] = true if Settings.gitlab.default_projects_features['wiki'].nil?
98 -Settings.gitlab.default_projects_features['wall'] = false if Settings.gitlab.default_projects_features['wall'].nil?  
99 Settings.gitlab.default_projects_features['snippets'] = false if Settings.gitlab.default_projects_features['snippets'].nil? 98 Settings.gitlab.default_projects_features['snippets'] = false if Settings.gitlab.default_projects_features['snippets'].nil?
100 Settings.gitlab.default_projects_features['visibility_level'] = Settings.send(:verify_constant, Gitlab::VisibilityLevel, Settings.gitlab.default_projects_features['visibility_level'], Gitlab::VisibilityLevel::PRIVATE) 99 Settings.gitlab.default_projects_features['visibility_level'] = Settings.send(:verify_constant, Gitlab::VisibilityLevel, Settings.gitlab.default_projects_features['visibility_level'], Gitlab::VisibilityLevel::PRIVATE)
101 Settings.gitlab['repository_downloads_path'] = File.absolute_path(Settings.gitlab['repository_downloads_path'] || 'tmp/repositories', Rails.root) 100 Settings.gitlab['repository_downloads_path'] = File.absolute_path(Settings.gitlab['repository_downloads_path'] || 'tmp/repositories', Rails.root)
config/routes.rb
@@ -209,12 +209,6 @@ Gitlab::Application.routes.draw do @@ -209,12 +209,6 @@ Gitlab::Application.routes.draw do
209 end 209 end
210 end 210 end
211 211
212 - resource :wall, only: [:show], constraints: {id: /\d+/} do  
213 - member do  
214 - get 'notes'  
215 - end  
216 - end  
217 -  
218 resource :repository, only: [:show] do 212 resource :repository, only: [:show] do
219 member do 213 member do
220 get "stats" 214 get "stats"
doc/api/notes.md
1 # Notes 1 # Notes
2 2
3 -Notes can be wall notes or comments on snippets, issues or merge requests.  
4 -  
5 -## Wall  
6 -  
7 -### List project wall notes  
8 -  
9 -Get a list of project wall notes.  
10 -  
11 -```  
12 -GET /projects/:id/notes  
13 -```  
14 -  
15 -Parameters:  
16 -  
17 -+ `id` (required) - The ID of a project  
18 -  
19 -```json  
20 -[  
21 - {  
22 - "id": 522,  
23 - "body": "The solution is rather tricky",  
24 - "attachment": null,  
25 - "author": {  
26 - "id": 1,  
27 - "username": "john_smith",  
28 - "email": "john@example.com",  
29 - "name": "John Smith",  
30 - "state": "active",  
31 - "created_at": "2012-05-23T08:00:58Z"  
32 - },  
33 - "created_at": "2012-11-27T19:16:44Z"  
34 - }  
35 -]  
36 -```  
37 -  
38 -### Get single wall note  
39 -  
40 -Returns a single wall note.  
41 -  
42 -```  
43 -GET /projects/:id/notes/:note_id  
44 -```  
45 -  
46 -Parameters:  
47 -  
48 -+ `id` (required) - The ID of a project  
49 -+ `note_id` (required) - The ID of a wall note  
50 -  
51 -  
52 -### Create new wall note  
53 -  
54 -Creates a new wall note.  
55 -  
56 -```  
57 -POST /projects/:id/notes  
58 -```  
59 -  
60 -Parameters:  
61 -  
62 -+ `id` (required) - The ID of a project  
63 -+ `body` (required) - The content of a note  
64 - 3 +Notes are comments on snippets, issues or merge requests.
65 4
66 ## Issues 5 ## Issues
67 6
doc/api/projects.md
@@ -30,7 +30,6 @@ GET /projects @@ -30,7 +30,6 @@ GET /projects
30 "path_with_namespace": "diaspora/diaspora-client", 30 "path_with_namespace": "diaspora/diaspora-client",
31 "issues_enabled": true, 31 "issues_enabled": true,
32 "merge_requests_enabled": true, 32 "merge_requests_enabled": true,
33 - "wall_enabled": false,  
34 "wiki_enabled": true, 33 "wiki_enabled": true,
35 "snippets_enabled": false, 34 "snippets_enabled": false,
36 "created_at": "2013-09-30T13: 46: 02Z", 35 "created_at": "2013-09-30T13: 46: 02Z",
@@ -66,7 +65,6 @@ GET /projects @@ -66,7 +65,6 @@ GET /projects
66 "path_with_namespace": "brightbox/puppet", 65 "path_with_namespace": "brightbox/puppet",
67 "issues_enabled": true, 66 "issues_enabled": true,
68 "merge_requests_enabled": true, 67 "merge_requests_enabled": true,
69 - "wall_enabled": false,  
70 "wiki_enabled": true, 68 "wiki_enabled": true,
71 "snippets_enabled": false, 69 "snippets_enabled": false,
72 "created_at": "2013-09-30T13:46:02Z", 70 "created_at": "2013-09-30T13:46:02Z",
@@ -136,7 +134,6 @@ Parameters: @@ -136,7 +134,6 @@ Parameters:
136 "path_with_namespace": "diaspora/diaspora-project-site", 134 "path_with_namespace": "diaspora/diaspora-project-site",
137 "issues_enabled": true, 135 "issues_enabled": true,
138 "merge_requests_enabled": true, 136 "merge_requests_enabled": true,
139 - "wall_enabled": false,  
140 "wiki_enabled": true, 137 "wiki_enabled": true,
141 "snippets_enabled": false, 138 "snippets_enabled": false,
142 "created_at": "2013-09-30T13: 46: 02Z", 139 "created_at": "2013-09-30T13: 46: 02Z",
@@ -252,7 +249,6 @@ Parameters: @@ -252,7 +249,6 @@ Parameters:
252 + `namespace_id` (optional) - namespace for the new project (defaults to user) 249 + `namespace_id` (optional) - namespace for the new project (defaults to user)
253 + `description` (optional) - short project description 250 + `description` (optional) - short project description
254 + `issues_enabled` (optional) 251 + `issues_enabled` (optional)
255 -+ `wall_enabled` (optional)  
256 + `merge_requests_enabled` (optional) 252 + `merge_requests_enabled` (optional)
257 + `wiki_enabled` (optional) 253 + `wiki_enabled` (optional)
258 + `snippets_enabled` (optional) 254 + `snippets_enabled` (optional)
@@ -276,7 +272,6 @@ Parameters: @@ -276,7 +272,6 @@ Parameters:
276 + `description` (optional) - short project description 272 + `description` (optional) - short project description
277 + `default_branch` (optional) - 'master' by default 273 + `default_branch` (optional) - 'master' by default
278 + `issues_enabled` (optional) 274 + `issues_enabled` (optional)
279 -+ `wall_enabled` (optional)  
280 + `merge_requests_enabled` (optional) 275 + `merge_requests_enabled` (optional)
281 + `wiki_enabled` (optional) 276 + `wiki_enabled` (optional)
282 + `snippets_enabled` (optional) 277 + `snippets_enabled` (optional)
doc/markdown/markdown.md
@@ -48,7 +48,6 @@ You can use GFM in @@ -48,7 +48,6 @@ You can use GFM in
48 48
49 - commit messages 49 - commit messages
50 - comments 50 - comments
51 -- wall posts  
52 - issues 51 - issues
53 - merge requests 52 - merge requests
54 - milestones 53 - milestones
doc/permissions/permissions.md
@@ -13,7 +13,6 @@ If a user is a GitLab administrator they receive all permissions. @@ -13,7 +13,6 @@ If a user is a GitLab administrator they receive all permissions.
13 |---------------------------------------|---------|------------|-------------|----------|--------| 13 |---------------------------------------|---------|------------|-------------|----------|--------|
14 | Create new issue | ✓ | ✓ | ✓ | ✓ | ✓ | 14 | Create new issue | ✓ | ✓ | ✓ | ✓ | ✓ |
15 | Leave comments | ✓ | ✓ | ✓ | ✓ | ✓ | 15 | Leave comments | ✓ | ✓ | ✓ | ✓ | ✓ |
16 -| Write on project wall | ✓ | ✓ | ✓ | ✓ | ✓ |  
17 | Pull project code | | ✓ | ✓ | ✓ | ✓ | 16 | Pull project code | | ✓ | ✓ | ✓ | ✓ |
18 | Download project | | ✓ | ✓ | ✓ | ✓ | 17 | Download project | | ✓ | ✓ | ✓ | ✓ |
19 | Create code snippets | | ✓ | ✓ | ✓ | ✓ | 18 | Create code snippets | | ✓ | ✓ | ✓ | ✓ |
doc/workflow/project_features.md
@@ -26,12 +26,6 @@ This is a separate system for documentation, built right into GitLab. @@ -26,12 +26,6 @@ This is a separate system for documentation, built right into GitLab.
26 26
27 It is source controlled and is very convenient if you don't want to keep you documentation in your source code, but you do want to keep it in your GitLab project. 27 It is source controlled and is very convenient if you don't want to keep you documentation in your source code, but you do want to keep it in your GitLab project.
28 28
29 -## Wall  
30 -  
31 -For simple, project specific conversations, the wall can be used.  
32 -  
33 -It's very lightweight and simple and works well if you're not interested in using issues, but still want to occasionally communicate within a project.  
34 -  
35 ## Snippets 29 ## Snippets
36 30
37 Snippets are little bits of code or text. 31 Snippets are little bits of code or text.
lib/api/entities.rb
@@ -48,7 +48,7 @@ module API @@ -48,7 +48,7 @@ module API
48 expose :owner, using: Entities::UserBasic, unless: ->(project, options) { project.group } 48 expose :owner, using: Entities::UserBasic, unless: ->(project, options) { project.group }
49 expose :name, :name_with_namespace 49 expose :name, :name_with_namespace
50 expose :path, :path_with_namespace 50 expose :path, :path_with_namespace
51 - expose :issues_enabled, :merge_requests_enabled, :wall_enabled, :wiki_enabled, :snippets_enabled, :created_at, :last_activity_at 51 + expose :issues_enabled, :merge_requests_enabled, :wiki_enabled, :snippets_enabled, :created_at, :last_activity_at
52 expose :namespace 52 expose :namespace
53 expose :forked_from_project, using: Entities::ForkedFromProject, :if => lambda{ | project, options | project.forked? } 53 expose :forked_from_project, using: Entities::ForkedFromProject, :if => lambda{ | project, options | project.forked? }
54 end 54 end
lib/api/notes.rb
@@ -6,55 +6,6 @@ module API @@ -6,55 +6,6 @@ module API
6 NOTEABLE_TYPES = [Issue, MergeRequest, Snippet] 6 NOTEABLE_TYPES = [Issue, MergeRequest, Snippet]
7 7
8 resource :projects do 8 resource :projects do
9 - # Get a list of project wall notes  
10 - #  
11 - # Parameters:  
12 - # id (required) - The ID of a project  
13 - # Example Request:  
14 - # GET /projects/:id/notes  
15 - get ":id/notes" do  
16 - @notes = user_project.notes.common  
17 -  
18 - # Get recent notes if recent = true  
19 - @notes = @notes.order('id DESC') if params[:recent]  
20 -  
21 - present paginate(@notes), with: Entities::Note  
22 - end  
23 -  
24 - # Get a single project wall note  
25 - #  
26 - # Parameters:  
27 - # id (required) - The ID of a project  
28 - # note_id (required) - The ID of a note  
29 - # Example Request:  
30 - # GET /projects/:id/notes/:note_id  
31 - get ":id/notes/:note_id" do  
32 - @note = user_project.notes.common.find(params[:note_id])  
33 - present @note, with: Entities::Note  
34 - end  
35 -  
36 - # Create a new project wall note  
37 - #  
38 - # Parameters:  
39 - # id (required) - The ID of a project  
40 - # body (required) - The content of a note  
41 - # Example Request:  
42 - # POST /projects/:id/notes  
43 - post ":id/notes" do  
44 - required_attributes! [:body]  
45 -  
46 - @note = user_project.notes.new(note: params[:body])  
47 - @note.author = current_user  
48 -  
49 - if @note.save  
50 - present @note, with: Entities::Note  
51 - else  
52 - # :note is exposed as :body, but :note is set on error  
53 - bad_request!(:note) if @note.errors[:note].any?  
54 - not_found!  
55 - end  
56 - end  
57 -  
58 NOTEABLE_TYPES.each do |noteable_type| 9 NOTEABLE_TYPES.each do |noteable_type|
59 noteables_str = noteable_type.to_s.underscore.pluralize 10 noteables_str = noteable_type.to_s.underscore.pluralize
60 noteable_id_str = "#{noteable_type.to_s.underscore}_id" 11 noteable_id_str = "#{noteable_type.to_s.underscore}_id"
lib/api/projects.rb
@@ -71,7 +71,6 @@ module API @@ -71,7 +71,6 @@ module API
71 # name (required) - name for new project 71 # name (required) - name for new project
72 # description (optional) - short project description 72 # description (optional) - short project description
73 # issues_enabled (optional) 73 # issues_enabled (optional)
74 - # wall_enabled (optional)  
75 # merge_requests_enabled (optional) 74 # merge_requests_enabled (optional)
76 # wiki_enabled (optional) 75 # wiki_enabled (optional)
77 # snippets_enabled (optional) 76 # snippets_enabled (optional)
@@ -86,7 +85,6 @@ module API @@ -86,7 +85,6 @@ module API
86 :path, 85 :path,
87 :description, 86 :description,
88 :issues_enabled, 87 :issues_enabled,
89 - :wall_enabled,  
90 :merge_requests_enabled, 88 :merge_requests_enabled,
91 :wiki_enabled, 89 :wiki_enabled,
92 :snippets_enabled, 90 :snippets_enabled,
@@ -114,7 +112,6 @@ module API @@ -114,7 +112,6 @@ module API
114 # description (optional) - short project description 112 # description (optional) - short project description
115 # default_branch (optional) - 'master' by default 113 # default_branch (optional) - 'master' by default
116 # issues_enabled (optional) 114 # issues_enabled (optional)
117 - # wall_enabled (optional)  
118 # merge_requests_enabled (optional) 115 # merge_requests_enabled (optional)
119 # wiki_enabled (optional) 116 # wiki_enabled (optional)
120 # snippets_enabled (optional) 117 # snippets_enabled (optional)
@@ -129,7 +126,6 @@ module API @@ -129,7 +126,6 @@ module API
129 :description, 126 :description,
130 :default_branch, 127 :default_branch,
131 :issues_enabled, 128 :issues_enabled,
132 - :wall_enabled,  
133 :merge_requests_enabled, 129 :merge_requests_enabled,
134 :wiki_enabled, 130 :wiki_enabled,
135 :snippets_enabled, 131 :snippets_enabled,