Commit 0760ba3efb7566b9f56bb066f4b15ba8ea34e1e7
1 parent
566b4962
Exists in
spb-stable
and in
3 other branches
Customization and previewing of broadcast messages
Showing
14 changed files
with
106 additions
and
3 deletions
Show diff stats
CHANGELOG
... | ... | @@ -23,6 +23,7 @@ v 6.4.0 |
23 | 23 | - API Cross-origin resource sharing |
24 | 24 | - Show READMe link at project home page |
25 | 25 | - Show repo size for projects in Admin area |
26 | + - Add color custimization and previewing to broadcast messages | |
26 | 27 | |
27 | 28 | v 6.3.0 |
28 | 29 | - API for adding gitlab-ci service | ... | ... |
app/assets/javascripts/admin.js.coffee
... | ... | @@ -8,6 +8,23 @@ class Admin |
8 | 8 | else |
9 | 9 | elems.removeAttr 'disabled' |
10 | 10 | |
11 | + $('body').on 'click', '.js-toggle-colors-link', (e) -> | |
12 | + e.preventDefault() | |
13 | + $('.js-toggle-colors-link').hide() | |
14 | + $('.js-toggle-colors-container').show() | |
15 | + | |
16 | + $('input#broadcast_message_color').on 'input', -> | |
17 | + previewColor = $('input#broadcast_message_color').val() | |
18 | + $('div.broadcast-message-preview').css('background-color', previewColor) | |
19 | + | |
20 | + $('input#broadcast_message_font').on 'input', -> | |
21 | + previewColor = $('input#broadcast_message_font').val() | |
22 | + $('div.broadcast-message-preview').css('color', previewColor) | |
23 | + | |
24 | + $('textarea#broadcast_message_message').on 'input', -> | |
25 | + previewMessage = $('textarea#broadcast_message_message').val() | |
26 | + $('div.broadcast-message-preview span').text(previewMessage) | |
27 | + | |
11 | 28 | $('.log-tabs a').click (e) -> |
12 | 29 | e.preventDefault() |
13 | 30 | $(this).tab('show') | ... | ... |
app/assets/stylesheets/common.scss
app/models/broadcast_message.rb
... | ... | @@ -9,10 +9,12 @@ |
9 | 9 | # alert_type :integer |
10 | 10 | # created_at :datetime not null |
11 | 11 | # updated_at :datetime not null |
12 | +# color :string(255) | |
13 | +# font :string(255) | |
12 | 14 | # |
13 | 15 | |
14 | 16 | class BroadcastMessage < ActiveRecord::Base |
15 | - attr_accessible :alert_type, :ends_at, :message, :starts_at | |
17 | + attr_accessible :alert_type, :color, :ends_at, :font, :message, :starts_at | |
16 | 18 | |
17 | 19 | validates :message, presence: true |
18 | 20 | validates :starts_at, presence: true | ... | ... |
app/views/admin/broadcast_messages/index.html.haml
... | ... | @@ -2,7 +2,9 @@ |
2 | 2 | Broadcast Messages |
3 | 3 | %p.light |
4 | 4 | Broadcast messages are displayed for every user and can be used to notify users about scheduled maintenance, recent upgrades and more. |
5 | -%hr | |
5 | +.broadcast-message-preview | |
6 | + %i.icon-bullhorn | |
7 | + %span Your message here | |
6 | 8 | |
7 | 9 | = form_for [:admin, @broadcast_message] do |f| |
8 | 10 | -if @broadcast_message.errors.any? |
... | ... | @@ -13,6 +15,17 @@ |
13 | 15 | = f.label :message |
14 | 16 | .controls |
15 | 17 | = f.text_area :message, class: "input-xxlarge", rows: 2, required: true |
18 | + %div | |
19 | + = link_to '#', class: 'js-toggle-colors-link' do | |
20 | + Customize colors | |
21 | + .control-group.js-toggle-colors-container.hide | |
22 | + = f.label :color, "Background Color" | |
23 | + .controls | |
24 | + = f.text_field :color | |
25 | + .control-group.js-toggle-colors-container.hide | |
26 | + = f.label :font, "Font Color" | |
27 | + .controls | |
28 | + = f.text_field :font | |
16 | 29 | .control-group |
17 | 30 | = f.label :starts_at |
18 | 31 | .controls.datetime-controls | ... | ... |
app/views/layouts/_broadcast.html.haml
db/migrate/20131130165425_add_color_and_font_to_broadcast_messages.rb
0 → 100644
db/schema.rb
... | ... | @@ -20,6 +20,8 @@ ActiveRecord::Schema.define(version: 20131217102743) do |
20 | 20 | t.integer "alert_type" |
21 | 21 | t.datetime "created_at", null: false |
22 | 22 | t.datetime "updated_at", null: false |
23 | + t.string "color" | |
24 | + t.string "font" | |
23 | 25 | end |
24 | 26 | |
25 | 27 | create_table "deploy_keys_projects", force: true do |t| | ... | ... |
features/admin/broadcast_messages.feature
... | ... | @@ -11,3 +11,10 @@ Feature: Admin Broadcast Messages |
11 | 11 | When submit form with new broadcast message |
12 | 12 | Then I should be redirected to admin messages page |
13 | 13 | And I should see newly created broadcast message |
14 | + | |
15 | + Scenario: Create a customized broadcast message | |
16 | + When submit form with new customized broadcast message | |
17 | + Then I should be redirected to admin messages page | |
18 | + And I should see newly created broadcast message | |
19 | + Then I visit dashboard page | |
20 | + And I should see a customized broadcast message | ... | ... |
features/steps/admin/admin_broadcast_messages.rb
... | ... | @@ -24,4 +24,18 @@ class Spinach::Features::AdminBroadcastMessages < Spinach::FeatureSteps |
24 | 24 | step 'I should see newly created broadcast message' do |
25 | 25 | page.should have_content 'Application update from 4:00 CST to 5:00 CST' |
26 | 26 | end |
27 | + | |
28 | + step 'submit form with new customized broadcast message' do | |
29 | + fill_in 'broadcast_message_message', with: 'Application update from 4:00 CST to 5:00 CST' | |
30 | + click_link "Customize colors" | |
31 | + fill_in 'broadcast_message_color', with: '#f2dede' | |
32 | + fill_in 'broadcast_message_font', with: '#b94a48' | |
33 | + select '2018', from: "broadcast_message_ends_at_1i" | |
34 | + click_button "Add broadcast message" | |
35 | + end | |
36 | + | |
37 | + step 'I should see a customized broadcast message' do | |
38 | + page.should have_content 'Application update from 4:00 CST to 5:00 CST' | |
39 | + page.should have_selector %(div[style="background-color:#f2dede;color:#b94a48"]) | |
40 | + end | |
27 | 41 | end | ... | ... |
spec/factories/broadcast_messages.rb
... | ... | @@ -9,6 +9,8 @@ |
9 | 9 | # alert_type :integer |
10 | 10 | # created_at :datetime not null |
11 | 11 | # updated_at :datetime not null |
12 | +# color :string(255) | |
13 | +# font :string(255) | |
12 | 14 | # |
13 | 15 | |
14 | 16 | # Read about factories at https://github.com/thoughtbot/factory_girl |
... | ... | @@ -19,5 +21,7 @@ FactoryGirl.define do |
19 | 21 | starts_at "2013-11-12 13:43:25" |
20 | 22 | ends_at "2013-11-12 13:43:25" |
21 | 23 | alert_type 1 |
24 | + color "#555" | |
25 | + font "#BBB" | |
22 | 26 | end |
23 | 27 | end | ... | ... |
... | ... | @@ -0,0 +1,21 @@ |
1 | +require 'spec_helper' | |
2 | + | |
3 | +describe BroadcastMessagesHelper do | |
4 | + describe 'broadcast_styling' do | |
5 | + let(:broadcast_message) { double(color: "", font: "") } | |
6 | + | |
7 | + context "default style" do | |
8 | + it "should have no style" do | |
9 | + broadcast_styling(broadcast_message).should match('') | |
10 | + end | |
11 | + end | |
12 | + | |
13 | + context "customiezd style" do | |
14 | + before { broadcast_message.stub(color: "#f2dede", font: "#b94a48") } | |
15 | + | |
16 | + it "should have a customized style" do | |
17 | + broadcast_styling(broadcast_message).should match('background-color:#f2dede;color:#b94a48') | |
18 | + end | |
19 | + end | |
20 | + end | |
21 | +end | ... | ... |