Groups are now workgroups. First part of moving groups-logic into admin-namespace.

This commit is contained in:
Benjamin Meichsner 2009-01-13 19:01:56 +01:00
parent 461dfa8531
commit 2d5dc03b90
31 changed files with 616 additions and 37 deletions

View file

@ -0,0 +1,35 @@
class Admin::MembershipsController < ApplicationController
def add_member
@group = Group.find(params[:group_id])
user = User.find(params[:user_id])
Membership.create(:group => @group, :user => user)
redirect_to :action => 'reload', :group_id => @group
end
def drop_member
begin
group = Group.find(params[:group_id])
Membership.find(params[:membership_id]).destroy
if User.find(@current_user.id).role_admin?
redirect_to :action => 'reload', :group_id => group
else
# If the user drops himself from admin group
flash[:notice] = MESG_NO_ADMIN_ANYMORE
render(:update) {|page| page.redirect_to :controller => "index"}
end
rescue => error
flash[:error] = error.to_s
redirect_to :action => 'reload', :group_id => group
end
end
def reload
@group = Group.find(params[:group_id])
render :update do |page|
page.replace_html 'members', :partial => 'members', :object => @group
page.replace_html 'non_members', :partial => 'non_members', :object => @group
end
end
end

View file

@ -0,0 +1,67 @@
class Admin::WorkgroupsController < ApplicationController
def index
if (params[:per_page] && params[:per_page].to_i > 0 && params[:per_page].to_i <= 100)
@per_page = params[:per_page].to_i
else
@per_page = 20
end
# if the search field is used
conditions = "name LIKE '%#{params[:query]}%'" unless params[:query].nil?
@workgroups = Workgroup.paginate(:conditions => conditions, :page => params[:page],
:per_page => @per_page, :order => 'name')
respond_to do |format|
format.html # index.html.erb
format.js { render :partial => "workgroups" }
end
end
def show
@workgroup = Workgroup.find(params[:id])
end
def new
@workgroup = Workgroup.new
end
def edit
@workgroup = Workgroup.find(params[:id])
end
def create
@workgroup = Workgroup.new(params[:workgroup])
if @workgroup.save
flash[:notice] = 'Workgroup was successfully created.'
redirect_to([:admin, @workgroup])
else
render :action => "new"
end
end
def update
@workgroup = Workgroup.find(params[:id])
if @workgroup.update_attributes(params[:workgroup])
flash[:notice] = 'Workgroup was successfully updated.'
redirect_to([:admin, @workgroup])
else
render :action => "edit"
end
end
def destroy
@workgroup = Workgroup.find(params[:id])
@workgroup.destroy
redirect_to(admin_workgroups_url)
end
def memberships
@group = Workgroup.find(params[:id])
end
end