Groups are now workgroups. First part of moving groups-logic into admin-namespace.
This commit is contained in:
parent
461dfa8531
commit
2d5dc03b90
31 changed files with 616 additions and 37 deletions
35
app/controllers/admin/memberships_controller.rb
Normal file
35
app/controllers/admin/memberships_controller.rb
Normal 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
|
||||
67
app/controllers/admin/workgroups_controller.rb
Normal file
67
app/controllers/admin/workgroups_controller.rb
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue