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 11 container = $(".js-toggle-visibility-container")
12 12 container.toggleClass("hide")
13 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 7 $(@).removeAttr('disabled').
8 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 13 end
14 14  
15 15 def update
16   - # TODO: implement
  16 + @member = @group.users_groups.find(params[:id])
  17 + @member.update_attributes(params[:users_group])
17 18 end
18 19  
19 20 def destroy
... ...
app/views/users_groups/_users_group.html.haml
1 1 - user = member.user
2 2 - return unless user
3   -%li{class: dom_class(member)}
  3 +%li{class: "#{dom_class(member)} js-toggle-container", id: dom_id(member)}
4 4 = image_tag gravatar_icon(user.email, 16), class: "avatar s16"
5 5 %strong= user.name
6 6 %span.cgray= user.username
... ... @@ -8,12 +8,16 @@
8 8 %span.label.label-success It's you
9 9  
10 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 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 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 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 @@
  1 +:plain
  2 + $("##{dom_id(@member)}").replaceWith('#{escape_javascript(render(@member, member: @member, show_controls: true))}');
... ...