Skip to content
Snippets Groups Projects
Commit ba599120 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Prepare UI for notification settings

parent d55ade16
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -3,3 +3,11 @@ $ ->
container = $(@).closest(".js-toggler-container")
 
container.toggleClass("on")
$("body").on "click", ".js-toggle-visibility-link", (e) ->
$(@).find('i').
toggleClass('icon-chevron-down').
toggleClass('icon-chevron-up')
container = $(".js-toggle-visibility-container")
container.toggleClass("hide")
e.preventDefault()
$.fn.showAndHide = ->
$(@).show().
delay(3000).
fadeOut()
$.fn.enableButton = ->
$(@).removeAttr('disabled').
removeClass('disabled')
Loading
Loading
@@ -7,6 +7,8 @@ window.slugify = (text) ->
window.ajaxGet = (url) ->
$.ajax({type: "GET", url: url, dataType: "script"})
 
window.showAndHide = (selector) ->
window.errorMessage = (message) ->
ehtml = $("<p>")
ehtml.addClass("error_message")
Loading
Loading
Loading
Loading
@@ -15,6 +15,8 @@ $ ->
$(this).find('.update-failed').hide()
 
$('.update-username form').on 'ajax:complete', ->
$(this).find('.save-btn').removeAttr('disabled')
$(this).find('.save-btn').removeClass('disabled')
$(this).find('.btn-save').enableButton()
$(this).find('.loading-gif').hide()
$('.update-notifications').on 'ajax:complete', ->
$(this).find('.btn-save').enableButton()
Loading
Loading
@@ -3,9 +3,11 @@ class NotificationsController < ApplicationController
 
def show
@notification = current_user.notification
@projects = current_user.authorized_projects
end
 
def update
@notification = current_user.notification
current_user.notification_level = params[:notification_level]
@saved = current_user.save
end
end
%h3.page_title Setup your notification level
%hr
 
%br
 
= form_tag profile_notifications_path do
%p.light
%strong Disabled
&ndash; You will not get any notifications via email
%p.light
%strong Participating
&ndash; You will receive only notifications from related resources(ex. from assigned issue or your commit)
%p.light
%strong Watch
&ndash; You will receive all notifications from projects in which you participate
%hr
 
%ul.unstyled
= form_tag profile_notifications_path, method: :put, remote: true, class: 'update-notifications' do
%ul.well-list
%li
.row
.span3
.span4
%h5 Global
.span9
.span7
= label_tag do
= radio_button_tag :notification_level, Notification::N_DISABLED, @notification.disabled?
%span Disabled
Loading
Loading
@@ -22,5 +32,37 @@
= radio_button_tag :notification_level, Notification::N_WATCH, @notification.watch?
%span Watch
 
= link_to '#', class: 'js-toggle-visibility-link' do
%h6.btn.btn-tiny
%i.icon-chevron-down
%span Per project notifications settings
%ul.well-list.js-toggle-visibility-container.hide
- @projects.each do |project|
%li
.row
.span4
%span
= project.name_with_namespace
.span7
= label_tag do
= radio_button_tag :"notification_level[#{project.id}]", Notification::N_DISABLED, @notification.disabled?, disabled: true
%span Disabled
= label_tag do
= radio_button_tag :"notification_level[#{project.id}]", Notification::N_PARTICIPATING, @notification.participating?, disabled: true
%span Participating
= label_tag do
= radio_button_tag :"notification_level[#{project.id}]", Notification::N_WATCH, @notification.watch?, disabled: true
%span Watch
.form-actions
= submit_tag 'Save', class: 'btn btn-save'
%span.update-success.cgreen.hide
%i.icon-ok
Saved
%span.update-failed.cred.hide
%i.icon-remove
Failed
- if @saved
:plain
$('.update-notifications .update-success').showAndHide();
- else
:plain
$('.update-notifications .update-failed').showAndHide();
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment