diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-08-06 18:45:45 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-08-06 18:45:45 +0300 |
commit | 6eabf90b804e199f6a9c2b96ac4b293405da9897 (patch) | |
tree | 131ea71ec9f6a2008ec6a0b3580ce9854ec496ca /app | |
parent | f8137075d5a615e968a4b63af13e1c51c36153df (diff) | |
download | gitlab-ce-6eabf90b804e199f6a9c2b96ac4b293405da9897.tar.gz |
Ability to edit group member permissions
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/behaviors/toggler_behavior.coffee | 5 | ||||
-rw-r--r-- | app/assets/javascripts/extensions/jquery.js.coffee | 4 | ||||
-rw-r--r-- | app/controllers/users_groups_controller.rb | 3 | ||||
-rw-r--r-- | app/views/users_groups/_users_group.html.haml | 14 | ||||
-rw-r--r-- | app/views/users_groups/update.js.haml | 2 |
5 files changed, 22 insertions, 6 deletions
diff --git a/app/assets/javascripts/behaviors/toggler_behavior.coffee b/app/assets/javascripts/behaviors/toggler_behavior.coffee index d2181e7b759..c01db203619 100644 --- a/app/assets/javascripts/behaviors/toggler_behavior.coffee +++ b/app/assets/javascripts/behaviors/toggler_behavior.coffee @@ -11,3 +11,8 @@ $ -> container = $(".js-toggle-visibility-container") container.toggleClass("hide") e.preventDefault() + + $("body").on "click", ".js-toggle-button", (e) -> + $(@).disableButton() + $(@).closest(".js-toggle-container").find(".js-toggle-content").show() + e.preventDefault() diff --git a/app/assets/javascripts/extensions/jquery.js.coffee b/app/assets/javascripts/extensions/jquery.js.coffee index 8a997fe318e..40fb6cb9fc3 100644 --- a/app/assets/javascripts/extensions/jquery.js.coffee +++ b/app/assets/javascripts/extensions/jquery.js.coffee @@ -7,3 +7,7 @@ $.fn.enableButton = -> $(@).removeAttr('disabled'). removeClass('disabled') +$.fn.disableButton = -> + $(@).attr('disabled', 'disabled'). + addClass('disabled') + diff --git a/app/controllers/users_groups_controller.rb b/app/controllers/users_groups_controller.rb index 36eb8dbbfa4..df13b86fdcd 100644 --- a/app/controllers/users_groups_controller.rb +++ b/app/controllers/users_groups_controller.rb @@ -13,7 +13,8 @@ class UsersGroupsController < ApplicationController end def update - # TODO: implement + @member = @group.users_groups.find(params[:id]) + @member.update_attributes(params[:users_group]) end def destroy diff --git a/app/views/users_groups/_users_group.html.haml b/app/views/users_groups/_users_group.html.haml index d3d08dd5dea..c8d306838f7 100644 --- a/app/views/users_groups/_users_group.html.haml +++ b/app/views/users_groups/_users_group.html.haml @@ -1,6 +1,6 @@ - user = member.user - return unless user -%li{class: dom_class(member)} +%li{class: "#{dom_class(member)} js-toggle-container", id: dom_id(member)} = image_tag gravatar_icon(user.email, 16), class: "avatar s16" %strong= user.name %span.cgray= user.username @@ -8,12 +8,16 @@ %span.label.label-success It's you %span.pull-right - - if @group.owners.include?(user) - %span.label.label-info Group Owner - - else - = member.human_access + %strong= member.human_access - if show_controls && user != @group.owner && user != current_user + = link_to '#', class: "btn-tiny btn js-toggle-button", title: 'Edit access level' do + %i.icon-edit = 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 %i.icon-minus.icon-white + .edit-member.hide.js-toggle-content + = form_for [@group, member], remote: true do |f| + .alert.prepend-top-20 + = f.select :group_access, options_for_select(UsersGroup.group_access_roles, member.group_access) + = f.submit 'Save', class: 'btn btn-save' diff --git a/app/views/users_groups/update.js.haml b/app/views/users_groups/update.js.haml new file mode 100644 index 00000000000..5bad48abafd --- /dev/null +++ b/app/views/users_groups/update.js.haml @@ -0,0 +1,2 @@ +:plain + $("##{dom_id(@member)}").replaceWith('#{escape_javascript(render(@member, member: @member, show_controls: true))}'); |