Skip to content
Snippets Groups Projects
Commit 74e32906 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

teams refactoring and cleanup pt.1

parent 1c88fbb3
No related branches found
No related tags found
1 merge request!2940Expanding repos and hooks paths in settings
Showing
with 39 additions and 126 deletions
Loading
Loading
@@ -64,16 +64,6 @@ class TeamsController < ApplicationController
@issues = @issues.includes(:author, :project)
end
 
def search
result = SearchContext.new(user_team.project_ids, params).execute
@projects = result[:projects]
@merge_requests = result[:merge_requests]
@issues = result[:issues]
@wiki_pages = result[:wiki_pages]
@teams = result[:teams]
end
protected
 
def projects
Loading
Loading
Loading
Loading
@@ -80,7 +80,7 @@ class Project < ActiveRecord::Base
# Scopes
scope :without_user, ->(user) { where("id NOT IN (:ids)", ids: user.authorized_projects.map(&:id) ) }
scope :not_in_group, ->(group) { where("id NOT IN (:ids)", ids: group.project_ids ) }
scope :without_team, ->(team) { where("id NOT IN (:ids)", ids: team.projects.map(&:id)) }
scope :without_team, ->(team) { team.projects.present? ? where("id NOT IN (:ids)", ids: team.projects.map(&:id)) : scoped }
scope :in_team, ->(team) { where("id IN (:ids)", ids: team.projects.map(&:id)) }
scope :in_namespace, ->(namespace) { where(namespace_id: namespace.id) }
scope :sorted_by_activity, ->() { order("(SELECT max(events.created_at) FROM events WHERE events.project_id = projects.id) DESC") }
Loading
Loading
Loading
Loading
@@ -19,18 +19,16 @@
Merge Requests
%span.count= MergeRequest.opened.of_user_team(@team).count
 
= nav_link(path: 'teams#search') do
= link_to "Search", search_team_path(@team)
= nav_link(controller: [:members]) do
= link_to team_members_path(@team), class: "team-tab tab" do
Members
%span.count= @team.members.count
 
- if can? current_user, :admin_user_team, @team
= nav_link(controller: [:projects]) do
= link_to team_projects_path(@team), class: "team-tab tab" do
%i.icon-briefcase
Projects
%span.count= @team.projects.count
 
= nav_link(path: 'teams#edit') do
= link_to edit_team_path(@team), class: "stat-tab tab " do
Loading
Loading
Loading
Loading
@@ -31,6 +31,20 @@
.controls
= f.text_field :email, class: "input-xlarge", required: true
%span.help-block We also use email for avatar detection.
.control-group
= f.label :skype, class: "control-label"
.controls= f.text_field :skype, class: "input-xlarge"
.control-group
= f.label :linkedin, class: "control-label"
.controls= f.text_field :linkedin, class: "input-xlarge"
.control-group
= f.label :twitter, class: "control-label"
.controls= f.text_field :twitter, class: "input-xlarge"
.control-group
= f.label :bio, class: "control-label"
.controls
= f.text_area :bio, rows: 6, class: "input-xlarge", maxlength: 250
%span.help-block Tell us about yourself in fewer than 250 characters.
 
.span5.right
%fieldset.tips
Loading
Loading
@@ -59,24 +73,6 @@
Want to share a team between projects?
= link_to new_team_path, class: "btn very_small" do
Create a team
.row
.span7
.control-group
= f.label :skype, class: "control-label"
.controls= f.text_field :skype, class: "input-xlarge"
.control-group
= f.label :linkedin, class: "control-label"
.controls= f.text_field :linkedin, class: "input-xlarge"
.control-group
= f.label :twitter, class: "control-label"
.controls= f.text_field :twitter, class: "input-xlarge"
.control-group
= f.label :bio, class: "control-label"
.controls
= f.text_area :bio, rows: 6, class: "input-xlarge", maxlength: 250
%span.help-block Tell us about yourself in fewer than 250 characters.
.span5.right
%fieldset
%legend
Personal projects:
Loading
Loading
= render "team_head"
%h3.page_title= "Edit Team #{@team.name}"
%hr
= form_for @team, url: teams_path do |f|
Loading
Loading
%h3.page_title
Teams
%small
list of all teams
= link_to 'New Team', new_team_path, class: "btn success small right"
%br
= form_tag search_teams_path, method: :get, class: 'form-inline' do
= text_field_tag :name, params[:name], class: "xlarge"
= submit_tag "Search", class: "btn submit primary"
%table.teams_list
%thead
%tr
%th
Name
%i.icon-sort-down
%th Path
%th Projects
%th Members
%th Owner
%th.cred Danger Zone!
- @teams.each do |team|
%tr
%td
%strong= link_to team.name, team_path(team)
%td= team.path
%td= link_to team.projects.count, team_projects_path(team)
%td= link_to team.members.count, team_members_path(team)
%td= link_to team.owner.name, team_member_path(team, team.owner)
%td.bgred
- if current_user.can?(:manage_user_team, team)
= link_to "Edit", edit_team_path(team), class: "btn small"
- if current_user.can?(:admin_user_team, team)
= link_to "Destroy", team_path(team), method: :delete, confirm: "You are shure?", class: "danger btn small"
&nbsp;
= render "team_head"
%h3.page_title
Issues
%small (in Team projects assigned to Team members)
Loading
Loading
= render "teams/team_head"
%h3
%h3.page_title
Edit access #{@member.name} in #{@team.name} team
 
%hr
Loading
Loading
= render "teams/team_head"
%h3.page_title
Team Members
(#{@members.count})
Loading
Loading
= render "teams/team_head"
%h3.page_title
Team: #{@team.name}
 
Loading
Loading
= render "teams/team_head"
- allow_admin = can? current_user, :admin_project, @project
- user = @team_member.user
 
Loading
Loading
= render "team_head"
%h3.page_title
Merge Requests
%small (authored by or assigned to Team members)
Loading
Loading
= render "teams/team_head"
%h3
Edit max access in #{@project.name} for #{@team.name} team
 
Loading
Loading
= render "teams/team_head"
%h3.page_title
Assigned projects (#{@team.projects.count})
%small
Loading
Loading
@@ -13,22 +11,26 @@
 
%hr
 
%table.projects-table
%thead
%tr
%th Project name
%th Max access
- if current_user.can?(:admin_user_team, @team)
%th.span3
- if @team.projects.present?
%table.projects-table
%thead
%tr
%th Project name
%th Max access
- if current_user.can?(:admin_user_team, @team)
%th.span3
- @team.projects.each do |project|
%tr.project
%td
= link_to project.name_with_namespace, project_path(project)
%td
%span= @team.human_max_project_access(project)
 
- @team.projects.each do |project|
%tr.project
%td
= link_to project.name_with_namespace, project_path(project)
%td
%span= @team.human_max_project_access(project)
- if current_user.can?(:admin_user_team, @team)
%td.bgred
= link_to 'Edit max access', edit_team_project_path(@team, project), class: "btn small"
= link_to 'Relegate', team_project_path(@team, project), confirm: 'Remove project from team and move to global namespace. Are you sure?', method: :delete, class: "btn danger small"
 
- if current_user.can?(:admin_user_team, @team)
%td.bgred
= link_to 'Edit max access', edit_team_project_path(@team, project), class: "btn small"
= link_to 'Relegate', team_project_path(@team, project), confirm: 'Remove project from team and move to global namespace. Are you sure?', method: :delete, class: "btn danger small"
- else
%p.nothing_here_message This team has no projects yet
= render "teams/team_head"
%h3.page_title
Team: #{@team.name}
 
Loading
Loading
= render "team_head"
= form_tag search_team_path(@team), method: :get, class: 'form-inline' do |f|
.padded
= label_tag :search do
%strong Looking for
.input
= search_field_tag :search, params[:search], placeholder: "issue 143", class: "input-xxlarge search-text-input", id: "dashboard_search"
= submit_tag 'Search', class: "btn primary wide"
- if params[:search].present?
= render 'search/result'
= render "team_head"
.projects
.activities.span8
= link_to dashboard_path, class: 'btn very_small' do
Loading
Loading
Loading
Loading
@@ -142,15 +142,11 @@ Gitlab::Application.routes.draw do
member do
get :issues
get :merge_requests
get :search
end
scope module: :teams do
resources :members, only: [:index, :new, :create, :edit, :update, :destroy]
resources :projects, only: [:index, :new, :create, :edit, :update, :destroy], constraints: { id: /[a-zA-Z.0-9_\-\/]+/ }
end
collection do
get :search
end
end
 
resources :projects, constraints: { id: /[^\/]+/ }, only: [:new, :create]
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment