groups_controller.rb 1.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
class Admin::GroupsController < AdminController
  before_filter :group, only: [:edit, :show, :update, :destroy, :project_update]

  def index
    @groups = Group.scoped
    @groups = @groups.search(params[:name]) if params[:name].present?
    @groups = @groups.page(params[:page]).per(20)
  end

  def show
    @projects = Project.scoped
    @projects = @projects.not_in_group(@group) if @group.projects.present?
    @projects = @projects.all
  end

  def new
    @group = Group.new
  end

  def edit
  end

  def create
    @group = Group.new(params[:group])
    @group.owner = current_user

    if @group.save
      redirect_to [:admin, @group], notice: 'Group was successfully created.'
    else
      render action: "new"
    end
  end

  def update
35 36
    group_params = params[:group].dup
    owner_id =group_params.delete(:owner_id)
37 38 39 40 41

    if owner_id
      @group.owner = User.find(owner_id)
    end

42
    if @group.update_attributes(group_params)
43 44 45 46 47 48 49 50
      redirect_to [:admin, @group], notice: 'Group was successfully updated.'
    else
      render action: "edit"
    end
  end

  def project_update
    project_ids = params[:project_ids]
51 52 53 54 55

    Project.where(id: project_ids).each do |project|
      project.namespace_id = @group.id
      project.save
    end
56 57 58 59

    redirect_to :back, notice: 'Group was successfully updated.'
  end

60 61
  def remove_project
    @project = Project.find(params[:project_id])
62
    @project.namespace_id = nil
63 64 65 66 67
    @project.save

    redirect_to :back, notice: 'Group was successfully updated.'
  end

68 69 70
  def destroy
    @group.destroy

R
randx 已提交
71
    redirect_to admin_groups_path, notice: 'Group was successfully deleted.'
72 73 74 75 76 77 78 79
  end

  private

  def group
    @group = Group.find_by_code(params[:id])
  end
end