Commit ba599120 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Prepare UI for notification settings

parent d55ade16
...@@ -3,3 +3,11 @@ $ -> ...@@ -3,3 +3,11 @@ $ ->
container = $(@).closest(".js-toggler-container") container = $(@).closest(".js-toggler-container")
container.toggleClass("on") 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')
...@@ -7,6 +7,8 @@ window.slugify = (text) -> ...@@ -7,6 +7,8 @@ window.slugify = (text) ->
window.ajaxGet = (url) -> window.ajaxGet = (url) ->
$.ajax({type: "GET", url: url, dataType: "script"}) $.ajax({type: "GET", url: url, dataType: "script"})
window.showAndHide = (selector) ->
window.errorMessage = (message) -> window.errorMessage = (message) ->
ehtml = $("<p>") ehtml = $("<p>")
ehtml.addClass("error_message") ehtml.addClass("error_message")
......
...@@ -15,6 +15,8 @@ $ -> ...@@ -15,6 +15,8 @@ $ ->
$(this).find('.update-failed').hide() $(this).find('.update-failed').hide()
$('.update-username form').on 'ajax:complete', -> $('.update-username form').on 'ajax:complete', ->
$(this).find('.save-btn').removeAttr('disabled') $(this).find('.btn-save').enableButton()
$(this).find('.save-btn').removeClass('disabled')
$(this).find('.loading-gif').hide() $(this).find('.loading-gif').hide()
$('.update-notifications').on 'ajax:complete', ->
$(this).find('.btn-save').enableButton()
...@@ -3,9 +3,11 @@ class NotificationsController < ApplicationController ...@@ -3,9 +3,11 @@ class NotificationsController < ApplicationController
def show def show
@notification = current_user.notification @notification = current_user.notification
@projects = current_user.authorized_projects
end end
def update def update
@notification = current_user.notification current_user.notification_level = params[:notification_level]
@saved = current_user.save
end end
end end
%h3.page_title Setup your notification level %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 %li
.row .row
.span3 .span4
%h5 Global %h5 Global
.span9 .span7
= label_tag do = label_tag do
= radio_button_tag :notification_level, Notification::N_DISABLED, @notification.disabled? = radio_button_tag :notification_level, Notification::N_DISABLED, @notification.disabled?
%span Disabled %span Disabled
...@@ -22,5 +32,37 @@ ...@@ -22,5 +32,37 @@
= radio_button_tag :notification_level, Notification::N_WATCH, @notification.watch? = radio_button_tag :notification_level, Notification::N_WATCH, @notification.watch?
%span 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 .form-actions
= submit_tag 'Save', class: 'btn btn-save' = 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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment