Commit 6eabf90b804e199f6a9c2b96ac4b293405da9897

Authored by Dmitriy Zaporozhets
1 parent f8137075

Ability to edit group member permissions

app/assets/javascripts/behaviors/toggler_behavior.coffee
@@ -11,3 +11,8 @@ $ -> @@ -11,3 +11,8 @@ $ ->
11 container = $(".js-toggle-visibility-container") 11 container = $(".js-toggle-visibility-container")
12 container.toggleClass("hide") 12 container.toggleClass("hide")
13 e.preventDefault() 13 e.preventDefault()
  14 +
  15 + $("body").on "click", ".js-toggle-button", (e) ->
  16 + $(@).disableButton()
  17 + $(@).closest(".js-toggle-container").find(".js-toggle-content").show()
  18 + e.preventDefault()
app/assets/javascripts/extensions/jquery.js.coffee
@@ -7,3 +7,7 @@ $.fn.enableButton = -> @@ -7,3 +7,7 @@ $.fn.enableButton = ->
7 $(@).removeAttr('disabled'). 7 $(@).removeAttr('disabled').
8 removeClass('disabled') 8 removeClass('disabled')
9 9
  10 +$.fn.disableButton = ->
  11 + $(@).attr('disabled', 'disabled').
  12 + addClass('disabled')
  13 +
app/controllers/users_groups_controller.rb
@@ -13,7 +13,8 @@ class UsersGroupsController < ApplicationController @@ -13,7 +13,8 @@ class UsersGroupsController < ApplicationController
13 end 13 end
14 14
15 def update 15 def update
16 - # TODO: implement 16 + @member = @group.users_groups.find(params[:id])
  17 + @member.update_attributes(params[:users_group])
17 end 18 end
18 19
19 def destroy 20 def destroy
app/views/users_groups/_users_group.html.haml
1 - user = member.user 1 - user = member.user
2 - return unless user 2 - return unless user
3 -%li{class: dom_class(member)} 3 +%li{class: "#{dom_class(member)} js-toggle-container", id: dom_id(member)}
4 = image_tag gravatar_icon(user.email, 16), class: "avatar s16" 4 = image_tag gravatar_icon(user.email, 16), class: "avatar s16"
5 %strong= user.name 5 %strong= user.name
6 %span.cgray= user.username 6 %span.cgray= user.username
@@ -8,12 +8,16 @@ @@ -8,12 +8,16 @@
8 %span.label.label-success It's you 8 %span.label.label-success It's you
9 9
10 %span.pull-right 10 %span.pull-right
11 - - if @group.owners.include?(user)  
12 - %span.label.label-info Group Owner  
13 - - else  
14 - = member.human_access 11 + %strong= member.human_access
15 12
16 - if show_controls && user != @group.owner && user != current_user 13 - if show_controls && user != @group.owner && user != current_user
  14 + = link_to '#', class: "btn-tiny btn js-toggle-button", title: 'Edit access level' do
  15 + %i.icon-edit
17 = link_to group_users_group_path(@group, member), confirm: remove_user_from_group_message(@group, user), method: :delete, remote: true, class: "btn-tiny btn btn-remove", title: 'Remove user from group' do 16 = link_to group_users_group_path(@group, member), confirm: remove_user_from_group_message(@group, user), method: :delete, remote: true, class: "btn-tiny btn btn-remove", title: 'Remove user from group' do
18 %i.icon-minus.icon-white 17 %i.icon-minus.icon-white
19 18
  19 + .edit-member.hide.js-toggle-content
  20 + = form_for [@group, member], remote: true do |f|
  21 + .alert.prepend-top-20
  22 + = f.select :group_access, options_for_select(UsersGroup.group_access_roles, member.group_access)
  23 + = f.submit 'Save', class: 'btn btn-save'
app/views/users_groups/update.js.haml 0 → 100644
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
  1 +:plain
  2 + $("##{dom_id(@member)}").replaceWith('#{escape_javascript(render(@member, member: @member, show_controls: true))}');