From e14718fb2e7202e1929d03ceea43a1c487d74f3d Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 30 May 2013 10:57:50 +0300 Subject: [PATCH] Add permission filter to teams -> members page --- app/models/user_team.rb | 1 - app/views/teams/members/_member.html.haml | 31 +++++++++++++++++++++++++++++++ app/views/teams/members/_show.html.haml | 31 ------------------------------- app/views/teams/members/_team.html.haml | 20 +++++++------------- app/views/teams/members/index.html.haml | 26 +++++++++++++++++++++++--- 5 files changed, 61 insertions(+), 48 deletions(-) create mode 100644 app/views/teams/members/_member.html.haml delete mode 100644 app/views/teams/members/_show.html.haml diff --git a/app/models/user_team.rb b/app/models/user_team.rb index 5de2ac6..364ea0d 100644 --- a/app/models/user_team.rb +++ b/app/models/user_team.rb @@ -113,5 +113,4 @@ class UserTeam < ActiveRecord::Base def admin?(member) user_team_user_relationships.with_user(member).first.group_admin? end - end diff --git a/app/views/teams/members/_member.html.haml b/app/views/teams/members/_member.html.haml new file mode 100644 index 0000000..17096d2 --- /dev/null +++ b/app/views/teams/members/_member.html.haml @@ -0,0 +1,31 @@ +- user = member.user +- allow_admin = can? current_user, :manage_user_team, @team +%li{id: dom_id(member), class: "team_member_row user_#{user.id}"} + .row + .span3 + = link_to user_path(user.username), title: user.name, class: "dark" do + = image_tag gravatar_icon(user.email, 40), class: "avatar s32" + = link_to user_path(user.username), title: user.name, class: "dark" do + %strong= truncate(user.name, lenght: 40) + %br + %small.cgray= user.username + + .span5.pull-right + - if allow_admin + .pull-left + = form_for(member, as: :team_member, url: team_member_path(@team, user)) do |f| + = label_tag :group_admin do + = f.check_box :group_admin, class: 'trigger-submit' + %span Admin access +   + = f.select :permission, options_for_select(UsersProject.access_roles, @team.default_projects_access(user)), {}, class: "span2 trigger-submit" + .pull-right + - if current_user == user + %span.label.label-success This is you! + - if @team.owner == user + %span.label.label-info Owner + - elsif user.blocked? + %span.label.label-error Blocked + - elsif allow_admin + = link_to team_member_path(@team, user), confirm: remove_from_user_team_message(@team, user), method: :delete, class: "btn-tiny btn btn-remove", title: "Remove from team" do + %i.icon-minus.icon-white diff --git a/app/views/teams/members/_show.html.haml b/app/views/teams/members/_show.html.haml deleted file mode 100644 index dc32acb..0000000 --- a/app/views/teams/members/_show.html.haml +++ /dev/null @@ -1,31 +0,0 @@ -- user = member.user -- allow_admin = can? current_user, :manage_user_team, @team -%li{id: dom_id(member), class: "team_member_row user_#{user.id}"} - .row - .span4 - = link_to user_path(user.username), title: user.name, class: "dark" do - = image_tag gravatar_icon(user.email, 40), class: "avatar s32" - = link_to user_path(user.username), title: user.name, class: "dark" do - %strong= truncate(user.name, lenght: 40) - %br - %small.cgray= user.username - - .span7.pull-right - - if allow_admin - .pull-left - = form_for(member, as: :team_member, url: team_member_path(@team, user)) do |f| - = label_tag do - = f.check_box :group_admin, class: 'trigger-submit' - %span Admin access -   - = f.select :permission, options_for_select(UsersProject.access_roles, @team.default_projects_access(user)), {}, class: "medium trigger-submit" - .pull-right - - if current_user == user - %span.btn.disabled This is you! - - if @team.owner == user - %span.btn.disabled Owner - - elsif user.blocked? - %span.btn.disabled.blocked Blocked - - elsif allow_admin - = link_to team_member_path(@team, user), confirm: remove_from_user_team_message(@team, user), method: :delete, class: "btn-tiny btn btn-remove", title: "Remove from team" do - %i.icon-minus.icon-white diff --git a/app/views/teams/members/_team.html.haml b/app/views/teams/members/_team.html.haml index d8afc1f..52bb597 100644 --- a/app/views/teams/members/_team.html.haml +++ b/app/views/teams/members/_team.html.haml @@ -1,16 +1,10 @@ -- grouped_user_team_members(@team).each do |access, members| +- grouped_user_team_members(team).each do |access, members| + - access_key = Project.access_options.key(access) + - next if params[:type].present? && params[:type] != access_key.tableize .ui-box %h5.title - = Project.access_options.key(access).pluralize + = access_key.pluralize %small= members.size - %ul.well-list - - members.sort_by(&:user_name).each do |up| - = render(partial: 'teams/members/show', locals: {member: up}) - - -:javascript - $(function(){ - $('.repo-access-select, .project-access-select').live("change", function() { - $(this.form).submit(); - }); - }) + %ul.well-list.team-members + - members.sort_by(&:user_name).each do |member| + = render 'teams/members/member', member: member diff --git a/app/views/teams/members/index.html.haml b/app/views/teams/members/index.html.haml index 8743826..02700e9 100644 --- a/app/views/teams/members/index.html.haml +++ b/app/views/teams/members/index.html.haml @@ -12,6 +12,26 @@ %hr -.clearfix -%div.team-table - = render partial: "teams/members/team", locals: {project: @team} +.row + .span3 + %ul.nav.nav-pills.nav-stacked + %li{class: ("active" if !params[:type])} + = link_to team_members_path(@team, type: nil) do + All + %li{class: ("active" if params[:type] == 'masters')} + = link_to team_members_path(@team, type: 'masters') do + Masters + %li{class: ("active" if params[:type] == 'developers')} + = link_to team_members_path(@team, type: 'developers') do + Developers + %li{class: ("active" if params[:type] == 'reporters')} + = link_to team_members_path(@team, type: 'reporters') do + Reporters + %li{class: ("active" if params[:type] == 'guests')} + = link_to team_members_path(@team, type: 'guests') do + Guests + + .span9 + .clearfix + %div.team-table + = render "teams/members/team", team: @team -- libgit2 0.21.2