diff options
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | app/assets/javascripts/dispatcher.js.coffee | 1 | ||||
-rw-r--r-- | app/assets/stylesheets/framework/blocks.scss | 2 | ||||
-rw-r--r-- | app/assets/stylesheets/pages/groups.scss | 6 | ||||
-rw-r--r-- | app/controllers/groups_controller.rb | 8 | ||||
-rw-r--r-- | app/controllers/notification_settings_controller.rb | 14 | ||||
-rw-r--r-- | app/helpers/notifications_helper.rb | 2 | ||||
-rw-r--r-- | app/views/groups/show.html.haml | 9 | ||||
-rw-r--r-- | doc/workflow/notifications.md | 2 | ||||
-rw-r--r-- | spec/controllers/notification_settings_controller_spec.rb | 12 |
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) |