Commit 6eabf90b804e199f6a9c2b96ac4b293405da9897
1 parent
f8137075
Exists in
master
and in
4 other branches
Ability to edit group member permissions
Showing
5 changed files
with
22 additions
and
6 deletions
Show diff stats
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' |