From a29db26cc99cb7406d1f9d7fe91650e6e2dd8294 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 18 Feb 2013 21:10:49 +0200 Subject: [PATCH] Refactor and restyle team page for project --- app/assets/stylesheets/sections/projects.scss | 4 +++ app/controllers/team_members_controller.rb | 4 ++- app/helpers/projects_helper.rb | 8 ----- app/models/user_team_project_relationship.rb | 4 +++ .../team_members/_assigned_team.html.haml | 10 ++++++ .../team_members/_assigned_teams.html.haml | 4 +++ app/views/team_members/_show_team.html.haml | 15 -------- app/views/team_members/_team.html.haml | 6 ++-- ..._show.html.haml => _team_member.html.haml} | 10 +++--- app/views/team_members/_teams.html.haml | 16 --------- app/views/team_members/index.html.haml | 35 ++++++++++++++----- 11 files changed, 59 insertions(+), 57 deletions(-) create mode 100644 app/views/team_members/_assigned_team.html.haml create mode 100644 app/views/team_members/_assigned_teams.html.haml delete mode 100644 app/views/team_members/_show_team.html.haml rename app/views/team_members/{_show.html.haml => _team_member.html.haml} (88%) delete mode 100644 app/views/team_members/_teams.html.haml diff --git a/app/assets/stylesheets/sections/projects.scss b/app/assets/stylesheets/sections/projects.scss index 28df1b5ac28..b37830b138e 100644 --- a/app/assets/stylesheets/sections/projects.scss +++ b/app/assets/stylesheets/sections/projects.scss @@ -115,3 +115,7 @@ ul.nav.nav-projects-tabs { } } } + +.team_member_row form { + margin: 0px; +} diff --git a/app/controllers/team_members_controller.rb b/app/controllers/team_members_controller.rb index 18d4ae3ac96..81d818e9386 100644 --- a/app/controllers/team_members_controller.rb +++ b/app/controllers/team_members_controller.rb @@ -4,7 +4,9 @@ class TeamMembersController < ProjectResourceController before_filter :authorize_admin_project!, except: [:index, :show] def index - @teams = UserTeam.scoped + @team = @project.users_projects.scoped + @team = @team.send(params[:type]) if %w(masters developers reporters guests).include?(params[:type]) + @team = @team.sort_by(&:project_access).reverse.group_by(&:project_access) end def show diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 8225014a2a3..2c7984c071e 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -1,12 +1,4 @@ module ProjectsHelper - def grouper_project_members(project) - @project.users_projects.sort_by(&:project_access).reverse.group_by(&:project_access) - end - - def grouper_project_teams(project) - @project.user_team_project_relationships.sort_by(&:greatest_access).reverse.group_by(&:greatest_access) - end - def remove_from_project_team_message(project, user) "You are going to remove #{user.name} from #{project.name} project team. Are you sure?" end diff --git a/app/models/user_team_project_relationship.rb b/app/models/user_team_project_relationship.rb index a7aa88970c7..991510be936 100644 --- a/app/models/user_team_project_relationship.rb +++ b/app/models/user_team_project_relationship.rb @@ -26,6 +26,10 @@ class UserTeamProjectRelationship < ActiveRecord::Base user_team.name end + def human_max_access + UserTeam.access_roles.key(greatest_access) + end + private def check_greatest_access diff --git a/app/views/team_members/_assigned_team.html.haml b/app/views/team_members/_assigned_team.html.haml new file mode 100644 index 00000000000..1d512c44b26 --- /dev/null +++ b/app/views/team_members/_assigned_team.html.haml @@ -0,0 +1,10 @@ +%li{id: dom_id(team), class: "user_team_row team_#{team.id}"} + .pull-right + - if can?(current_user, :admin_team_member, @project) + = link_to resign_project_team_path(@project, team), method: :delete, confirm: "Are you shure?", class: "btn btn-remove btn-tiny" do + %i.icon-minus.icon-white + + %strong= link_to team.name, team_path(team), title: team.name, class: "dark" + %br + %small.cgray Members: #{team.members.count} + %small.cgray Max access: #{team_relation.human_max_access} diff --git a/app/views/team_members/_assigned_teams.html.haml b/app/views/team_members/_assigned_teams.html.haml new file mode 100644 index 00000000000..c06b826f918 --- /dev/null +++ b/app/views/team_members/_assigned_teams.html.haml @@ -0,0 +1,4 @@ +.ui-box + %ul.well-list + - @project.user_team_project_relationships.sort_by(&:team_name).each do |team_relation| + = render "team_members/assigned_team", team_relation: team_relation, team: team_relation.user_team diff --git a/app/views/team_members/_show_team.html.haml b/app/views/team_members/_show_team.html.haml deleted file mode 100644 index f1555f0b87b..00000000000 --- a/app/views/team_members/_show_team.html.haml +++ /dev/null @@ -1,15 +0,0 @@ -- team = team_rel.user_team -- allow_admin = can? current_user, :admin_team_member, @project -%li{id: dom_id(team), class: "user_team_row team_#{team.id}"} - .row - .span6 - %strong= link_to team.name, team_path(team), title: team.name, class: "dark" - %br - %small.cgray Members: #{team.members.count} - - .span5.pull-right - .pull-right - - if allow_admin - .left - = link_to resign_project_team_path(@project, team), method: :delete, confirm: "Are you shure?", class: "btn btn-remove small" do - %i.icon-minus.icon-white diff --git a/app/views/team_members/_team.html.haml b/app/views/team_members/_team.html.haml index 365d9b65942..9f68fb78203 100644 --- a/app/views/team_members/_team.html.haml +++ b/app/views/team_members/_team.html.haml @@ -1,11 +1,11 @@ -- grouper_project_members(@project).each do |access, members| +- @team.each do |access, members| .ui-box %h5.title = Project.access_options.key(access).pluralize %small= members.size %ul.well-list - - members.sort_by(&:user_name).each do |up| - = render(partial: 'team_members/show', locals: {member: up}) + - members.sort_by(&:user_name).each do |team_member| + = render 'team_members/team_member', member: team_member :javascript diff --git a/app/views/team_members/_show.html.haml b/app/views/team_members/_team_member.html.haml similarity index 88% rename from app/views/team_members/_show.html.haml rename to app/views/team_members/_team_member.html.haml index 3df2caed64a..7ee51246ceb 100644 --- a/app/views/team_members/_show.html.haml +++ b/app/views/team_members/_team_member.html.haml @@ -2,7 +2,7 @@ - allow_admin = can? current_user, :admin_project, @project %li{id: dom_id(user), class: "team_member_row user_#{user.id}"} .row - .span6 + .span4 = link_to project_team_member_path(@project, user), title: user.name, class: "dark" do = image_tag gravatar_icon(user.email, 40), class: "avatar s32" = link_to project_team_member_path(@project, user), title: user.name, class: "dark" do @@ -10,18 +10,18 @@ %br %small.cgray= user.email - .span5.pull-right + .span4.pull-right - if allow_admin .left = form_for(member, as: :team_member, url: project_team_member_path(@project, member.user)) do |f| = f.select :project_access, options_for_select(UsersProject.access_roles, member.project_access), {}, class: "medium project-access-select span2" .pull-right - if current_user == user - %span.btn.disabled This is you! + %span.label This is you! - if @project.namespace_owner == user - %span.btn.disabled Owner + %span.label Owner - elsif user.blocked - %span.btn.disabled.blocked Blocked + %span.label Blocked - elsif allow_admin = link_to project_team_member_path(@project, user), confirm: remove_from_project_team_message(@project, user), method: :delete, class: "btn-tiny btn btn-remove" do %i.icon-minus.icon-white diff --git a/app/views/team_members/_teams.html.haml b/app/views/team_members/_teams.html.haml deleted file mode 100644 index 156fdd1befa..00000000000 --- a/app/views/team_members/_teams.html.haml +++ /dev/null @@ -1,16 +0,0 @@ -- grouper_project_teams(@project).each do |access, teams| - .ui-box - %h5.title - = UserTeam.access_roles.key(access).pluralize - %small= teams.size - %ul.well-list - - teams.sort_by(&:team_name).each do |tofr| - = render(partial: 'team_members/show_team', locals: {team_rel: tofr}) - - -:javascript - $(function(){ - $('.repo-access-select, .project-access-select').live("change", function() { - $(this.form).submit(); - }); - }) diff --git a/app/views/team_members/index.html.haml b/app/views/team_members/index.html.haml index 3264f58cb32..ac9e46a1fac 100644 --- a/app/views/team_members/index.html.haml +++ b/app/views/team_members/index.html.haml @@ -18,16 +18,33 @@ %hr .clearfix -%div.team-table - = render partial: "team_members/team", locals: {project: @project} +.row + .span3 + %ul.nav.nav-pills.nav-stacked + %li{class: ("active" if !params[:type])} + = link_to project_team_members_path(type: nil) do + All + %li{class: ("active" if params[:type] == 'masters')} + = link_to project_team_members_path(type: 'masters') do + Masters + %li{class: ("active" if params[:type] == 'developers')} + = link_to project_team_members_path(type: 'developers') do + Developers + %li{class: ("active" if params[:type] == 'reporters')} + = link_to project_team_members_path(type: 'reporters') do + Reporters + %li{class: ("active" if params[:type] == 'guests')} + = link_to project_team_members_path(type: 'guests') do + Guests + %h5 + Assigned teams + (#{@project.user_teams.count}) + %div + = render "team_members/assigned_teams", project: @project + .span9 + %div.team-table + = render "team_members/team", project: @project -%h3.page_title - Assigned teams - (#{@project.user_teams.count}) -%hr -.clearfix -%div.team-table - = render partial: "team_members/teams", locals: {project: @project} -- GitLab