BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
4ca73f56
Commit
4ca73f56
authored
Mar 28, 2016
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Small refactoring and cleanup of notification logic
Signed-off-by:
Dmitriy Zaporozhets
<
dmitriy.zaporozhets@gmail.com
>
parent
b8f38437
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
8 additions
and
64 deletions
+8
-64
notifications_helper.rb
app/helpers/notifications_helper.rb
+2
-10
member.rb
app/models/member.rb
+2
-0
group_member.rb
app/models/members/group_member.rb
+0
-1
project_member.rb
app/models/members/project_member.rb
+0
-1
notification.rb
app/models/notification.rb
+0
-46
notification_setting_spec.rb
spec/models/notification_setting_spec.rb
+1
-0
notification_service_spec.rb
spec/services/notification_service_spec.rb
+3
-6
No files found.
app/helpers/notifications_helper.rb
View file @
4ca73f56
...
...
@@ -22,16 +22,12 @@ module NotificationsHelper
def
notification_title
(
level
)
case
level
.
to_sym
when
:disabled
'Disabled'
when
:participating
'Participate'
when
:watch
'Watch'
when
:mention
'On mention'
when
:global
'Global'
else
level
.
to_s
.
titlecase
end
end
...
...
@@ -50,10 +46,6 @@ module NotificationsHelper
end
end
def
notification_label
(
setting
)
notification_title
(
setting
.
level
)
end
def
active_level_for
(
setting
,
level
)
'active'
if
setting
.
level
==
level
end
...
...
app/models/member.rb
View file @
4ca73f56
...
...
@@ -62,6 +62,8 @@ class Member < ActiveRecord::Base
delegate
:name
,
:username
,
:email
,
to: :user
,
prefix:
true
default_value_for
:notification_level
,
NotificationSetting
.
levels
[
:global
]
class
<<
self
def
find_by_invite_token
(
invite_token
)
invite_token
=
Devise
.
token_generator
.
digest
(
self
,
:invite_token
,
invite_token
)
...
...
app/models/members/group_member.rb
View file @
4ca73f56
...
...
@@ -24,7 +24,6 @@ class GroupMember < Member
# Make sure group member points only to group as it source
default_value_for
:source_type
,
SOURCE_TYPE
default_value_for
:notification_level
,
Notification
::
N_GLOBAL
validates_format_of
:source_type
,
with:
/\ANamespace\z/
default_scope
{
where
(
source_type:
SOURCE_TYPE
)
}
...
...
app/models/members/project_member.rb
View file @
4ca73f56
...
...
@@ -27,7 +27,6 @@ class ProjectMember < Member
# Make sure project member points only to project as it source
default_value_for
:source_type
,
SOURCE_TYPE
default_value_for
:notification_level
,
Notification
::
N_GLOBAL
validates_format_of
:source_type
,
with:
/\AProject\z/
default_scope
{
where
(
source_type:
SOURCE_TYPE
)
}
...
...
app/models/notification.rb
View file @
4ca73f56
class
Notification
#
# Notification levels
#
N_DISABLED
=
0
N_PARTICIPATING
=
1
N_WATCH
=
2
N_GLOBAL
=
3
N_MENTION
=
4
attr_accessor
:target
class
<<
self
def
notification_levels
[
N_DISABLED
,
N_MENTION
,
N_PARTICIPATING
,
N_WATCH
]
end
def
options_with_labels
{
disabled:
N_DISABLED
,
participating:
N_PARTICIPATING
,
watch:
N_WATCH
,
mention:
N_MENTION
,
global:
N_GLOBAL
}
end
def
project_notification_levels
[
N_DISABLED
,
N_MENTION
,
N_PARTICIPATING
,
N_WATCH
,
N_GLOBAL
]
end
end
delegate
:disabled?
,
:participating?
,
:watch?
,
:global?
,
:mention?
,
to: :target
def
initialize
(
target
)
...
...
@@ -39,21 +10,4 @@ class Notification
def
level
target
.
notification_level
end
def
to_s
case
level
when
N_DISABLED
'Disabled'
when
N_PARTICIPATING
'Participating'
when
N_WATCH
'Watching'
when
N_MENTION
'On mention'
when
N_GLOBAL
'Global'
else
# do nothing
end
end
end
spec/models/notification_setting_spec.rb
View file @
4ca73f56
...
...
@@ -3,6 +3,7 @@ require 'rails_helper'
RSpec
.
describe
NotificationSetting
,
type: :model
do
describe
"Associations"
do
it
{
is_expected
.
to
belong_to
(
:user
)
}
it
{
is_expected
.
to
belong_to
(
:source
)
}
end
describe
"Validation"
do
...
...
spec/services/notification_service_spec.rb
View file @
4ca73f56
...
...
@@ -88,12 +88,9 @@ describe NotificationService, services: true do
note
.
project
.
namespace_id
=
group
.
id
note
.
project
.
group
.
add_user
(
@u_watcher
,
GroupMember
::
MASTER
)
note
.
project
.
save
user_project
=
note
.
project
.
project_members
.
find_by_user_id
(
@u_watcher
.
id
)
user_project
.
notification
.
level
=
:participating
user_project
.
save
group_member
=
note
.
project
.
group
.
group_members
.
find_by_user_id
(
@u_watcher
.
id
)
group_member
.
notification
.
level
=
:global
group_member
.
notification
.
save
@u_watcher
.
notification_settings
.
find_by
(
source:
note
.
project
).
participating!
@u_watcher
.
notification_settings
.
find_by
(
source:
note
.
project
.
group
).
global!
ActionMailer
::
Base
.
deliveries
.
clear
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment