summaryrefslogtreecommitdiff
path: root/app/controllers/projects_controller.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-03-28 18:17:42 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-03-30 10:44:20 +0200
commit359157c097993a9b917ca590e128e85cf358d95d (patch)
tree08a29f8221442621506f38fa8dce7095d630f7d0 /app/controllers/projects_controller.rb
parent73c5a3410596165244bfa3d2f657c313ec1c558c (diff)
downloadgitlab-ce-359157c097993a9b917ca590e128e85cf358d95d.tar.gz
Introduce NotificationSetting to user interface
* visiting project will create notification setting if missing * change notification setting per project even without membership * use notification settings instead of membership on profile page Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/controllers/projects_controller.rb')
-rw-r--r--app/controllers/projects_controller.rb17
1 files changed, 13 insertions, 4 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 928817ba811..77122f59128 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -98,14 +98,23 @@ class ProjectsController < Projects::ApplicationController
respond_to do |format|
format.html do
+ if current_user
+ @membership = @project.team.find_member(current_user.id)
+
+ if @membership
+ @notification_setting = current_user.notification_settings.find_or_initialize_by(source: @project)
+
+ unless @notification_setting.persisted?
+ @notification_setting.set_defaults
+ @notification_setting.save
+ end
+ end
+ end
+
if @project.repository_exists?
if @project.empty_repo?
render 'projects/empty'
else
- if current_user
- @membership = @project.team.find_member(current_user.id)
- end
-
render :show
end
else