OSDN Git Service

refactoring user team in public section
authorAndrey Kumanyaev <me@zzet.org>
Tue, 22 Jan 2013 17:21:07 +0000 (21:21 +0400)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Thu, 24 Jan 2013 20:31:25 +0000 (22:31 +0200)
app/controllers/teams/application_controller.rb
app/controllers/teams/projects_controller.rb
app/helpers/user_teams_helper.rb
app/views/teams/members/_show.html.haml

index 1cfb0e0..f1ecb5b 100644 (file)
@@ -1,6 +1,4 @@
 class Teams::ApplicationController < ApplicationController
-  before_filter :user_team, only: [:index, :show, :edit, :update, :destroy, :issues, :merge_requests, :search, :members]
-
   protected
 
   def user_team
index 796f37f..84de968 100644 (file)
@@ -1,21 +1,39 @@
 class Teams::ProjectsController < Teams::ApplicationController
   def index
-    @projects = @user_team.projects
-    @avaliable_projects = current_user.admin? ? Project.without_team(@user_team) : (Project.personal(current_user) + current_user.projects).uniq
+    @projects = user_team.projects
+    @avaliable_projects = current_user.admin? ? Project.without_team(user_team) : (Project.personal(current_user) + current_user.projects).uniq
   end
 
   def new
+    @projects = Project.scoped
+    @projects = @projects.without_team(user_team) if user_team.projects.any?
+    #@projects.reject!(&:empty_repo?)
   end
 
   def create
+    unless params[:project_ids].blank?
+      project_ids = params[:project_ids]
+      access = params[:greatest_project_access]
+      user_team.assign_to_projects(project_ids, access)
+    end
+
+    redirect_to admin_team_path(user_team), notice: 'Projects was successfully added.'
   end
 
   def edit
+    @user_team = user_team
   end
 
   def update
+    if user_team.update_project_access(project, params[:greatest_project_access])
+      redirect_to admin_team_path(user_team), notice: 'Membership was successfully updated.'
+    else
+      render :edit
+    end
   end
 
   def destroy
+    user_team.resign_from_project(project)
+    redirect_to admin_team_path(user_team), notice: 'Project was successfully removed.'
   end
 end
index 01e10de..60deb9e 100644 (file)
@@ -19,7 +19,7 @@ module UserTeamsHelper
     team.user_team_user_relationships.sort_by(&:permission).reverse.group_by(&:permission)
   end
 
-  def remove_from_team_message(team, member)
+  def remove_from_user_team_message(team, member)
     "You are going to remove #{member.name} from #{team.name}. Are you sure?"
   end
 
index dfe73c7..a06d269 100644 (file)
@@ -27,5 +27,5 @@
         - elsif user.blocked
           %span.btn.disabled.blocked Blocked
         - elsif allow_admin
-          = link_to team_member_path(@user_team, user), confirm: remove_from_team_message(@user_team, user), method: :delete, class: "very_small btn danger" do
+          = link_to team_member_path(@user_team, user), confirm: remove_from_user_team_message(@user_team, user), method: :delete, class: "very_small btn danger" do
             %i.icon-minus.icon-white