Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gitlab-ce
Commits
d55ade16
Commit
d55ade16
authored
Mar 27, 2013
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
notification scaffold
parent
5f14a6bc
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
119 additions
and
7 deletions
+119
-7
app/controllers/notifications_controller.rb
app/controllers/notifications_controller.rb
+11
-0
app/helpers/notifications_helper.rb
app/helpers/notifications_helper.rb
+2
-0
app/models/notification.rb
app/models/notification.rb
+30
-0
app/models/user.rb
app/models/user.rb
+7
-7
app/views/layouts/profile.html.haml
app/views/layouts/profile.html.haml
+2
-0
app/views/notifications/show.html.haml
app/views/notifications/show.html.haml
+26
-0
config/routes.rb
config/routes.rb
+2
-0
spec/helpers/notifications_helper_spec.rb
spec/helpers/notifications_helper_spec.rb
+15
-0
spec/requests/notifications_spec.rb
spec/requests/notifications_spec.rb
+11
-0
spec/routing/notifications_routing_spec.rb
spec/routing/notifications_routing_spec.rb
+13
-0
No files found.
app/controllers/notifications_controller.rb
0 → 100644
View file @
d55ade16
class
NotificationsController
<
ApplicationController
layout
'profile'
def
show
@notification
=
current_user
.
notification
end
def
update
@notification
=
current_user
.
notification
end
end
app/helpers/notifications_helper.rb
0 → 100644
View file @
d55ade16
module
NotificationsHelper
end
app/models/notification.rb
0 → 100644
View file @
d55ade16
class
Notification
#
# Notification levels
#
N_DISABLED
=
0
N_PARTICIPATING
=
1
N_WATCH
=
2
attr_accessor
:user
def
self
.
notification_levels
[
N_DISABLED
,
N_PARTICIPATING
,
N_WATCH
]
end
def
initialize
(
user
)
@user
=
user
end
def
disabled?
user
.
notification_level
==
N_DISABLED
end
def
participating?
user
.
notification_level
==
N_PARTICIPATING
end
def
watch?
user
.
notification_level
==
N_WATCH
end
end
app/models/user.rb
View file @
d55ade16
...
@@ -54,13 +54,6 @@ class User < ActiveRecord::Base
...
@@ -54,13 +54,6 @@ class User < ActiveRecord::Base
attr_accessible
:login
attr_accessible
:login
#
# Notification levels
#
N_DISABLED
=
0
N_PARTICIPATING
=
1
N_WATCH
=
2
#
#
# Relations
# Relations
#
#
...
@@ -116,6 +109,9 @@ class User < ActiveRecord::Base
...
@@ -116,6 +109,9 @@ class User < ActiveRecord::Base
format:
{
with:
Gitlab
::
Regex
.
username_regex
,
format:
{
with:
Gitlab
::
Regex
.
username_regex
,
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
validates
:notification_level
,
inclusion:
{
in:
Notification
.
notification_levels
},
presence:
true
validate
:namespace_uniq
,
if:
->
(
user
)
{
user
.
username_changed?
}
validate
:namespace_uniq
,
if:
->
(
user
)
{
user
.
username_changed?
}
...
@@ -216,6 +212,10 @@ class User < ActiveRecord::Base
...
@@ -216,6 +212,10 @@ class User < ActiveRecord::Base
username
username
end
end
def
notification
@notification
||=
Notification
.
new
(
self
)
end
def
generate_password
def
generate_password
if
self
.
force_random_password
if
self
.
force_random_password
self
.
password
=
self
.
password_confirmation
=
Devise
.
friendly_token
.
first
(
8
)
self
.
password
=
self
.
password_confirmation
=
Devise
.
friendly_token
.
first
(
8
)
...
...
app/views/layouts/profile.html.haml
View file @
d55ade16
...
@@ -11,6 +11,8 @@
...
@@ -11,6 +11,8 @@
%i
.icon-home
%i
.icon-home
=
nav_link
(
path:
'profiles#account'
)
do
=
nav_link
(
path:
'profiles#account'
)
do
=
link_to
"Account"
,
account_profile_path
=
link_to
"Account"
,
account_profile_path
=
nav_link
(
controller: :notifications
)
do
=
link_to
"Notifications"
,
profile_notifications_path
=
nav_link
(
controller: :keys
)
do
=
nav_link
(
controller: :keys
)
do
=
link_to
keys_path
do
=
link_to
keys_path
do
SSH Keys
SSH Keys
...
...
app/views/notifications/show.html.haml
0 → 100644
View file @
d55ade16
%h3
.page_title
Setup your notification level
%hr
=
form_tag
profile_notifications_path
do
%ul
.unstyled
%li
.row
.span3
%h5
Global
.span9
=
label_tag
do
=
radio_button_tag
:notification_level
,
Notification
::
N_DISABLED
,
@notification
.
disabled?
%span
Disabled
=
label_tag
do
=
radio_button_tag
:notification_level
,
Notification
::
N_PARTICIPATING
,
@notification
.
participating?
%span
Participating
=
label_tag
do
=
radio_button_tag
:notification_level
,
Notification
::
N_WATCH
,
@notification
.
watch?
%span
Watch
.form-actions
=
submit_tag
'Save'
,
class:
'btn btn-save'
config/routes.rb
View file @
d55ade16
...
@@ -110,6 +110,8 @@ Gitlab::Application.routes.draw do
...
@@ -110,6 +110,8 @@ Gitlab::Application.routes.draw do
put
:reset_private_token
put
:reset_private_token
put
:update_username
put
:update_username
end
end
resource
:notifications
end
end
resources
:keys
resources
:keys
...
...
spec/helpers/notifications_helper_spec.rb
0 → 100644
View file @
d55ade16
require
'spec_helper'
# Specs in this file have access to a helper object that includes
# the NotificationsHelper. For example:
#
# describe NotificationsHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# helper.concat_strings("this","that").should == "this that"
# end
# end
# end
describe
NotificationsHelper
do
pending
"add some examples to (or delete)
#{
__FILE__
}
"
end
spec/requests/notifications_spec.rb
0 → 100644
View file @
d55ade16
require
'spec_helper'
describe
"Notifications"
do
describe
"GET /notifications"
do
it
"works! (now write some real specs)"
do
# Run the generator again with the --webrat flag if you want to use webrat methods/matchers
get
notifications_path
response
.
status
.
should
be
(
200
)
end
end
end
spec/routing/notifications_routing_spec.rb
0 → 100644
View file @
d55ade16
require
"spec_helper"
describe
NotificationsController
do
describe
"routing"
do
it
"routes to #show"
do
get
(
"/profile/notifications"
).
should
route_to
(
"notifications#show"
)
end
it
"routes to #update"
do
put
(
"/profile/notifications"
).
should
route_to
(
"notifications#update"
)
end
end
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