GitLab wurde aktualisiert. Dank regelmäßiger Updates bleibt das THM GitLab sicher und Sie profitieren von den neuesten Funktionen. Vielen Dank für Ihre Geduld.

Commit 36d48120 authored by Felipe Artur's avatar Felipe Artur
Browse files

merge master into issue_3359_3

parents 2674b548 92e18354
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)
......
......@@ -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()
......
......@@ -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;
......
......@@ -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;
}
}
......@@ -74,6 +74,10 @@ def activity
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 @@ def setup_projects
@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
......
......@@ -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 @@ def update
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
......
......@@ -72,6 +72,6 @@ def notifications_menu_identifier(type, notification_setting)
# 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
......@@ -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
......
......@@ -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
......
......@@ -13,7 +13,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment