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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
99334d4b
Commit
99334d4b
authored
Nov 12, 2013
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/broadcast_messages' of /home/git/repositories/gitlab/gitlabhq
parents
0a08c775
3397361f
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
230 additions
and
1 deletion
+230
-1
app/assets/stylesheets/common.scss
app/assets/stylesheets/common.scss
+7
-0
app/assets/stylesheets/gitlab_bootstrap/forms.scss
app/assets/stylesheets/gitlab_bootstrap/forms.scss
+6
-0
app/assets/stylesheets/sections/admin.scss
app/assets/stylesheets/sections/admin.scss
+6
-0
app/controllers/admin/broadcast_messages_controller.rb
app/controllers/admin/broadcast_messages_controller.rb
+32
-0
app/helpers/application_helper.rb
app/helpers/application_helper.rb
+4
-0
app/models/broadcast_message.rb
app/models/broadcast_message.rb
+11
-0
app/views/admin/broadcast_messages/index.html.haml
app/views/admin/broadcast_messages/index.html.haml
+46
-0
app/views/layouts/_broadcast.html.haml
app/views/layouts/_broadcast.html.haml
+4
-0
app/views/layouts/application.html.haml
app/views/layouts/application.html.haml
+1
-0
app/views/layouts/nav/_admin.html.haml
app/views/layouts/nav/_admin.html.haml
+2
-0
app/views/layouts/projects.html.haml
app/views/layouts/projects.html.haml
+1
-0
config/routes.rb
config/routes.rb
+1
-0
db/migrate/20131112114325_create_broadcast_messages.rb
db/migrate/20131112114325_create_broadcast_messages.rb
+12
-0
db/schema.rb
db/schema.rb
+10
-1
features/admin/active_tab.feature
features/admin/active_tab.feature
+5
-0
features/admin/broadcast_messages.feature
features/admin/broadcast_messages.feature
+13
-0
features/steps/admin/admin_active_tab.rb
features/steps/admin/admin_active_tab.rb
+4
-0
features/steps/admin/admin_broadcast_messages.rb
features/steps/admin/admin_broadcast_messages.rb
+27
-0
features/steps/shared/paths.rb
features/steps/shared/paths.rb
+4
-0
spec/factories/broadcast_messages.rb
spec/factories/broadcast_messages.rb
+10
-0
spec/models/broadcast_message_spec.rb
spec/models/broadcast_message_spec.rb
+24
-0
No files found.
app/assets/stylesheets/common.scss
View file @
99334d4b
...
...
@@ -351,3 +351,10 @@ table {
@extend
.btn-new
;
padding
:
5px
15px
;
}
.broadcast-message
{
padding
:
10px
;
text-align
:
center
;
background
:
#555
;
color
:
#BBB
;
}
app/assets/stylesheets/gitlab_bootstrap/forms.scss
View file @
99334d4b
...
...
@@ -49,3 +49,9 @@ fieldset legend {
font-size
:
16px
;
margin-bottom
:
10px
;
}
.datetime-controls
{
select
{
width
:
100px
;
}
}
app/assets/stylesheets/sections/admin.scss
View file @
99334d4b
...
...
@@ -21,3 +21,9 @@
.controls
{
margin-left
:
130px
;
}
.form-actions
{
padding-left
:
130px
;
background
:
#fff
}
}
.broadcast-messages
{
.message
{
line-height
:
2
;
}
}
app/controllers/admin/broadcast_messages_controller.rb
0 → 100644
View file @
99334d4b
class
Admin::BroadcastMessagesController
<
Admin
::
ApplicationController
before_filter
:broadcast_messages
def
index
@broadcast_message
=
BroadcastMessage
.
new
end
def
create
@broadcast_message
=
BroadcastMessage
.
new
(
params
[
:broadcast_message
])
if
@broadcast_message
.
save
redirect_to
admin_broadcast_messages_path
,
notice:
'Broadcast Message was successfully created.'
else
render
:index
end
end
def
destroy
BroadcastMessage
.
find
(
params
[
:id
]).
destroy
respond_to
do
|
format
|
format
.
html
{
redirect_to
:back
}
format
.
js
{
render
nothing:
true
}
end
end
protected
def
broadcast_messages
@broadcast_messages
||=
BroadcastMessage
.
order
(
"starts_at DESC"
).
page
(
params
[
:page
])
end
end
app/helpers/application_helper.rb
View file @
99334d4b
...
...
@@ -208,4 +208,8 @@ module ApplicationHelper
line
+=
"..."
if
lines
.
size
>
1
line
end
def
broadcast_message
BroadcastMessage
.
current
end
end
app/models/broadcast_message.rb
0 → 100644
View file @
99334d4b
class
BroadcastMessage
<
ActiveRecord
::
Base
attr_accessible
:alert_type
,
:ends_at
,
:message
,
:starts_at
validates
:message
,
presence:
true
validates
:starts_at
,
presence:
true
validates
:ends_at
,
presence:
true
def
self
.
current
where
(
"ends_at > :now AND starts_at < :now"
,
now:
Time
.
zone
.
now
).
last
end
end
app/views/admin/broadcast_messages/index.html.haml
0 → 100644
View file @
99334d4b
%h3
.page-title
Broadcast Messages
%p
.light
Broadcast messages displayed for every user and can be used to notify application about scheduled maintenance.
%hr
=
form_for
[
:admin
,
@broadcast_message
]
do
|
f
|
-
if
@broadcast_message
.
errors
.
any?
.alert.alert-error
-
@broadcast_message
.
errors
.
full_messages
.
each
do
|
msg
|
%p
=
msg
.control-group
=
f
.
label
:message
.controls
=
f
.
text_area
:message
,
class:
"input-xxlarge"
,
rows:
2
,
required:
true
.control-group
=
f
.
label
:starts_at
.controls.datetime-controls
=
f
.
datetime_select
:starts_at
.control-group
=
f
.
label
:ends_at
.controls.datetime-controls
=
f
.
datetime_select
:ends_at
.form-actions
=
f
.
submit
"Add broadcast message"
,
class:
"btn btn-create"
-
if
@broadcast_messages
.
any?
%ul
.bordered-list.broadcast-messages
-
@broadcast_messages
.
each
do
|
broadcast_message
|
%li
.pull-right
-
if
broadcast_message
.
starts_at
%strong
#{
broadcast_message
.
starts_at
.
to_s
(
:short
)
}
\...
-
if
broadcast_message
.
ends_at
%strong
#{
broadcast_message
.
ends_at
.
to_s
(
:short
)
}
=
link_to
[
:admin
,
broadcast_message
],
method: :delete
,
remote:
true
,
class:
'remove-row btn btn-tiny'
do
%i
.icon-remove.cred
.message
=
broadcast_message
.
message
=
paginate
@broadcast_messages
app/views/layouts/_broadcast.html.haml
0 → 100644
View file @
99334d4b
-
if
broadcast_message
.
present?
.broadcast-message
%i
.icon-bullhorn
=
broadcast_message
.
message
app/views/layouts/application.html.haml
View file @
99334d4b
...
...
@@ -2,6 +2,7 @@
%html
{
lang:
"en"
}
=
render
"layouts/head"
,
title:
"Dashboard"
%body
{
class:
"#{app_theme} application"
,
:'data-page'
=>
body_data_page
}
=
render
"layouts/broadcast"
=
render
"layouts/head_panel"
,
title:
"Dashboard"
=
render
"layouts/flash"
%nav
.main-nav
...
...
app/views/layouts/nav/_admin.html.haml
View file @
99334d4b
...
...
@@ -10,6 +10,8 @@
=
link_to
"Users"
,
admin_users_path
=
nav_link
(
controller: :logs
)
do
=
link_to
"Logs"
,
admin_logs_path
=
nav_link
(
controller: :broadcast_messages
)
do
=
link_to
"Messages"
,
admin_broadcast_messages_path
=
nav_link
(
controller: :hooks
)
do
=
link_to
"Hooks"
,
admin_hooks_path
=
nav_link
(
controller: :background_jobs
)
do
...
...
app/views/layouts/projects.html.haml
View file @
99334d4b
...
...
@@ -2,6 +2,7 @@
%html
{
lang:
"en"
}
=
render
"layouts/head"
,
title:
@project
.
name_with_namespace
%body
{
class:
"#{app_theme} project"
,
:'data-page'
=>
body_data_page
,
:'data-project-id'
=>
@project
.
id
}
=
render
"layouts/broadcast"
=
render
"layouts/head_panel"
,
title:
project_title
(
@project
)
=
render
"layouts/init_auto_complete"
=
render
"layouts/flash"
...
...
config/routes.rb
View file @
99334d4b
...
...
@@ -86,6 +86,7 @@ Gitlab::Application.routes.draw do
get
:test
end
resources
:broadcast_messages
,
only:
[
:index
,
:create
,
:destroy
]
resource
:logs
,
only:
[
:show
]
resource
:background_jobs
,
controller:
'background_jobs'
,
only:
[
:show
]
resources
:projects
,
constraints:
{
id:
/[a-zA-Z.\/0-9_\-]+/
},
only:
[
:index
,
:show
]
...
...
db/migrate/20131112114325_create_broadcast_messages.rb
0 → 100644
View file @
99334d4b
class
CreateBroadcastMessages
<
ActiveRecord
::
Migration
def
change
create_table
:broadcast_messages
do
|
t
|
t
.
text
:message
,
null:
false
t
.
datetime
:starts_at
t
.
datetime
:ends_at
t
.
integer
:alert_type
t
.
timestamps
end
end
end
db/schema.rb
View file @
99334d4b
...
...
@@ -11,7 +11,16 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
:version
=>
20131106151520
)
do
ActiveRecord
::
Schema
.
define
(
:version
=>
20131112114325
)
do
create_table
"broadcast_messages"
,
:force
=>
true
do
|
t
|
t
.
text
"message"
,
:null
=>
false
t
.
datetime
"starts_at"
t
.
datetime
"ends_at"
t
.
integer
"alert_type"
t
.
datetime
"created_at"
,
:null
=>
false
t
.
datetime
"updated_at"
,
:null
=>
false
end
create_table
"deploy_keys_projects"
,
:force
=>
true
do
|
t
|
t
.
integer
"deploy_key_id"
,
:null
=>
false
...
...
features/admin/active_tab.feature
View file @
99334d4b
...
...
@@ -27,6 +27,11 @@ Feature: Admin active tab
Then
the active main tab should be Logs
And
no other main tabs should be active
Scenario
:
On Admin Messages
Given
I visit admin messages page
Then
the active main tab should be Messages
And
no other main tabs should be active
Scenario
:
On Admin Hooks
Given
I visit admin hooks page
Then
the active main tab should be Hooks
...
...
features/admin/broadcast_messages.feature
0 → 100644
View file @
99334d4b
Feature
:
Admin Broadcast Messages
Background
:
Given
I sign in as an admin
And
application already has admin messages
And
I visit admin messages page
Scenario
:
See broadcast messages list
Then
I should be all broadcast messages
Scenario
:
Create a broadcast message
When
submit form with new broadcast message
Then
I should be redirected to admin messages page
And
I should see newly created broadcast message
features/steps/admin/admin_active_tab.rb
View file @
99334d4b
...
...
@@ -30,4 +30,8 @@ class AdminActiveTab < Spinach::FeatureSteps
Then
'the active main tab should be Resque'
do
ensure_active_main_tab
(
'Background Jobs'
)
end
Then
'the active main tab should be Messages'
do
ensure_active_main_tab
(
'Messages'
)
end
end
features/steps/admin/admin_broadcast_messages.rb
0 → 100644
View file @
99334d4b
class
Spinach::Features::AdminBroadcastMessages
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedPaths
include
SharedAdmin
step
'application already has admin messages'
do
FactoryGirl
.
create
(
:broadcast_message
,
message:
"Migration to new server"
)
end
step
'I should be all broadcast messages'
do
page
.
should
have_content
"Migration to new server"
end
step
'submit form with new broadcast message'
do
fill_in
'broadcast_message_message'
,
with:
'Application update from 4:00 CST to 5:00 CST'
select
'2018'
,
from:
"broadcast_message_ends_at_1i"
click_button
"Add broadcast message"
end
step
'I should be redirected to admin messages page'
do
current_path
.
should
==
admin_broadcast_messages_path
end
step
'I should see newly created broadcast message'
do
page
.
should
have_content
'Application update from 4:00 CST to 5:00 CST'
end
end
features/steps/shared/paths.rb
View file @
99334d4b
...
...
@@ -105,6 +105,10 @@ module SharedPaths
visit
admin_logs_path
end
step
'I visit admin messages page'
do
visit
admin_broadcast_messages_path
end
step
'I visit admin hooks page'
do
visit
admin_hooks_path
end
...
...
spec/factories/broadcast_messages.rb
0 → 100644
View file @
99334d4b
# Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl
.
define
do
factory
:broadcast_message
do
message
"MyText"
starts_at
"2013-11-12 13:43:25"
ends_at
"2013-11-12 13:43:25"
alert_type
1
end
end
spec/models/broadcast_message_spec.rb
0 → 100644
View file @
99334d4b
require
'spec_helper'
describe
BroadcastMessage
do
subject
{
create
(
:broadcast_message
)
}
it
{
should
be_valid
}
describe
:current
do
it
"should return last message if time match"
do
broadcast_message
=
create
(
:broadcast_message
,
starts_at:
Time
.
now
.
yesterday
,
ends_at:
Time
.
now
.
tomorrow
)
BroadcastMessage
.
current
.
should
==
broadcast_message
end
it
"should return nil if time not come"
do
broadcast_message
=
create
(
:broadcast_message
,
starts_at:
Time
.
now
.
tomorrow
,
ends_at:
Time
.
now
+
2
.
days
)
BroadcastMessage
.
current
.
should
be_nil
end
it
"should return nil if time has passed"
do
broadcast_message
=
create
(
:broadcast_message
,
starts_at:
Time
.
now
-
2
.
days
,
ends_at:
Time
.
now
.
yesterday
)
BroadcastMessage
.
current
.
should
be_nil
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