summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG2
-rw-r--r--app/assets/javascripts/dispatcher.js.coffee1
-rw-r--r--app/assets/stylesheets/framework/blocks.scss2
-rw-r--r--app/assets/stylesheets/pages/groups.scss6
-rw-r--r--app/controllers/groups_controller.rb8
-rw-r--r--app/controllers/notification_settings_controller.rb14
-rw-r--r--app/helpers/notifications_helper.rb2
-rw-r--r--app/views/groups/show.html.haml9
-rw-r--r--doc/workflow/notifications.md2
-rw-r--r--spec/controllers/notification_settings_controller_spec.rb12
10 files changed, 29 insertions, 29 deletions
diff --git a/CHANGELOG b/CHANGELOG
index aef536b2a8e..3fd908d30d6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,5 @@
Please view this file on the master branch, on stable branches it's out of date.
-v 8.10(unreleased)
+v 8.10.0(unreleased)
- Add notifications dropdown for groups
v 8.9.0 (unreleased)
diff --git a/app/assets/javascripts/dispatcher.js.coffee b/app/assets/javascripts/dispatcher.js.coffee
index 5bb9647f6c2..9493a575801 100644
--- a/app/assets/javascripts/dispatcher.js.coffee
+++ b/app/assets/javascripts/dispatcher.js.coffee
@@ -85,6 +85,7 @@ class Dispatcher
when 'groups:show'
shortcut_handler = new ShortcutsNavigation()
new NotificationsForm()
+ new NotificationsDropdown()
when 'groups:group_members:index'
new GroupMembers()
new UsersSelect()
diff --git a/app/assets/stylesheets/framework/blocks.scss b/app/assets/stylesheets/framework/blocks.scss
index 38023818709..41e77a4ac68 100644
--- a/app/assets/stylesheets/framework/blocks.scss
+++ b/app/assets/stylesheets/framework/blocks.scss
@@ -137,7 +137,7 @@
margin: 0;
font-size: 24px;
font-weight: normal;
- margin-bottom: 5px;
+ margin-bottom: 10px;
color: #4c4e54;
font-size: 23px;
line-height: 1.1;
diff --git a/app/assets/stylesheets/pages/groups.scss b/app/assets/stylesheets/pages/groups.scss
index ac7721cbe15..101faf59174 100644
--- a/app/assets/stylesheets/pages/groups.scss
+++ b/app/assets/stylesheets/pages/groups.scss
@@ -48,11 +48,7 @@
.access-request-button {
@include btn-gray;
- position: absolute;
- right: 16px;
- bottom: 32px;
- padding: 3px 10px;
+ margin-right: 10px;
text-transform: none;
- background-color: $background-color;
}
}
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index f65f9da3f9e..a04bf7df722 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -74,6 +74,10 @@ class GroupsController < Groups::ApplicationController
def edit
end
+ def projects
+ @projects = @group.projects.page(params[:page])
+ end
+
def update
if Groups::UpdateService.new(@group, current_user, group_params).execute
redirect_to edit_group_path(@group), notice: "Group '#{@group.name}' was successfully updated."
@@ -100,10 +104,6 @@ class GroupsController < Groups::ApplicationController
@shared_projects = GroupProjectsFinder.new(group, only_shared: true).execute(current_user)
end
- def projects
- @projects = @group.projects.page(params[:page])
- end
-
def authorize_create_group!
unless can?(current_user, :create_group, nil)
return render_404
diff --git a/app/controllers/notification_settings_controller.rb b/app/controllers/notification_settings_controller.rb
index aacbefd4ab8..8ec4bb1233f 100644
--- a/app/controllers/notification_settings_controller.rb
+++ b/app/controllers/notification_settings_controller.rb
@@ -2,8 +2,6 @@ class NotificationSettingsController < ApplicationController
before_action :authenticate_user!
def create
- resource = find_resource
-
return render_404 unless can_read?(resource)
@notification_setting = current_user.notification_settings_for(resource)
@@ -21,12 +19,12 @@ class NotificationSettingsController < ApplicationController
private
- def find_resource
- resource =
- if params[:project].present?
- Project.find(params[:project][:id])
- elsif params[:namespace].present?
- Group.find(params[:namespace][:id])
+ def resource
+ @resource ||=
+ if params[:project_id].present?
+ Project.find(params[:project_id])
+ elsif params[:namespace_id].present?
+ Group.find(params[:namespace_id])
end
end
diff --git a/app/helpers/notifications_helper.rb b/app/helpers/notifications_helper.rb
index 77783cd7640..7e8369d0a05 100644
--- a/app/helpers/notifications_helper.rb
+++ b/app/helpers/notifications_helper.rb
@@ -72,6 +72,6 @@ module NotificationsHelper
# Create hidden field to send notification setting source to controller
def hidden_setting_source_input(notification_setting)
return unless notification_setting.source_type
- hidden_field_tag "#{notification_setting.source_type.downcase}[id]", notification_setting.source_id
+ hidden_field_tag "#{notification_setting.source_type.downcase}_id", notification_setting.source_id
end
end
diff --git a/app/views/groups/show.html.haml b/app/views/groups/show.html.haml
index 5792c5dbac5..a0a6762edcf 100644
--- a/app/views/groups/show.html.haml
+++ b/app/views/groups/show.html.haml
@@ -15,14 +15,17 @@
%span.visibility-icon.has-tooltip{ data: { container: 'body' }, title: visibility_icon_description(@group) }
= visibility_level_icon(@group.visibility_level, fw: false)
- = render 'notifications/buttons/notifications', notification_setting: @notification_setting
+ %span.hidden-xs
+ = render 'shared/notifications/button', notification_setting: @notification_setting
+
+ - if current_user
+ .pull-right
+ = render 'shared/members/access_request_buttons', source: @group
- if @group.description.present?
.cover-desc.description
= markdown(@group.description, pipeline: :description)
- - if current_user
- = render 'shared/members/access_request_buttons', source: @group
%div{ class: container_class }
.top-area
diff --git a/doc/workflow/notifications.md b/doc/workflow/notifications.md
index fe4485e148a..b4a9c2f3d3e 100644
--- a/doc/workflow/notifications.md
+++ b/doc/workflow/notifications.md
@@ -37,12 +37,14 @@ This means that you can set a different level of notifications per group while s
to have a finer level setting per project.
Organization like this is suitable for users that belong to different groups but don't have the
same need for being notified for every group they are member of.
+These settings can be configured on group page or user profile notifications dropdown.
#### Project Settings
Project Settings are at the top level and any setting placed at this level will take precedence of any
other setting.
This is suitable for users that have different needs for notifications per project basis.
+These settings can be configured on project page or user profile notifications dropdown.
## Notification events
diff --git a/spec/controllers/notification_settings_controller_spec.rb b/spec/controllers/notification_settings_controller_spec.rb
index ad48b9e9087..07734a2dc19 100644
--- a/spec/controllers/notification_settings_controller_spec.rb
+++ b/spec/controllers/notification_settings_controller_spec.rb
@@ -13,7 +13,7 @@ describe NotificationSettingsController do
context 'when not authorized' do
it 'redirects to sign in page' do
post :create,
- project: { id: project.id },
+ project_id: project.id,
notification_setting: { level: :participating }
expect(response).to redirect_to(new_user_session_path)
@@ -40,7 +40,7 @@ describe NotificationSettingsController do
it 'creates notification setting' do
post :create,
- project: { id: project.id },
+ project_id: project.id,
notification_setting: { level: :participating }
expect(response.status).to eq 200
@@ -53,7 +53,7 @@ describe NotificationSettingsController do
context 'with custom settings' do
it 'creates notification setting' do
post :create,
- project: { id: project.id },
+ project_id: project.id,
notification_setting: { level: :custom }.merge(custom_events)
expect(response.status).to eq 200
@@ -68,7 +68,7 @@ describe NotificationSettingsController do
it 'creates notification setting' do
post :create,
- namespace: { id: group.id },
+ namespace_id: group.id,
notification_setting: { level: :watch }
expect(response.status).to eq 200
@@ -81,7 +81,7 @@ describe NotificationSettingsController do
context 'with custom settings' do
it 'creates notification setting' do
post :create,
- namespace: { id: group.id },
+ namespace_id: group.id,
notification_setting: { level: :custom }.merge(custom_events)
expect(response.status).to eq 200
@@ -98,7 +98,7 @@ describe NotificationSettingsController do
it 'returns 404' do
post :create,
- project: { id: private_project.id },
+ project_id: private_project.id,
notification_setting: { level: :participating }
expect(response.status).to eq(404)