orbit4-5/app/controllers/admin/groups_controller.rb

157 lines
3.4 KiB
Ruby

class Admin::GroupsController < OrbitGroupController
include Admin::GroupsHelper
def index
@groups = current_user.groups
end
def public_groups
@groups = Group.open
end
def categories
@categories = GroupCategory.all
end
def newpost
render_401 and return if !user_can_write?
@no_breadcrumb = true
@grouppost = GroupPost.new
end
def createpost
gp = GroupPost.new(post_params)
gp.group = @group
gp.save
redirect_to admin_group_path(@group)
end
def showpost
render_401 and return if !user_can_read?
if (current_user.id.to_s != @post.author.to_s) && (!@post.read_by.include?(current_user.id.to_s))
@post.read_by << current_user.id.to_s
@post.save
end
@read_by_names = @post.read_by.collect{|rb|
user = User.find(rb) rescue nil
author = (user.member_profile.name == nil ? user.user_name : user.member_profile.name rescue "") if !user.nil?
author
}
end
def show
@no_breadcrumb = true
@no_filter = true
if !user_can_read?
render_401 and return
end
end
def create_category
gc = GroupCategory.new(category_params)
gc.save
@categories = GroupCategory.all
render :partial => "group_categories"
end
def upload_photo
photo = GroupPostImage.new(post_image_params)
photo.save
render :json => {"success" => true,"id" => photo.id.to_s}.to_json
end
def upload_file
file = GroupPostFile.new(post_file_params)
file.save
render :json => {"success" => true,"id" => file.id.to_s}.to_json
end
def download_file
file_id = params[:id]
file = GroupPostFile.find(file_id) rescue nil
if !file.nil?
redirect_to file.file.url and return
end
render :nothing => true
end
def create
group = Group.new(group_params)
group.save
redirect_to admin_groups_path
end
def new
@group = Group.new
@categories = GroupCategory.all.collect{|gc| [gc.title,gc.id]}
@members = []
MemberProfile.all.each do |mp|
user = mp.user rescue nil
if !user.nil? && user.id.to_s != current_user.id.to_s && user.user_name != "rulingcom"
avatar = (mp.avatar.thumb.url == "thumb_person.png" ? "/assets/thumb_person.png" : mp.avatar.thumb.url rescue "/assets/thumb_person.png")
@members << {
"id" => user.id.to_s,
"user_name" => (user.user_name rescue ""),
"avatar" => avatar,
"name" => (mp.name_translations rescue {"en" => "","zh_tw" => ""})
}
end
end
end
def new_comment
gpc = GroupPostComment.new(comment_params)
gpc.save
render :partial => "post_comment", :collection => [gpc]
end
private
def category_params
params.require(:category).permit!
end
def comment_params
params.require(:group_post_comment).permit!
end
def post_params
p = params.require(:group_post).permit!
p["author"] = current_user.id
images = []
p[:group_post_images].each do |id|
gpi = GroupPostImage.find(id) rescue nil
if !gpi.nil?
images << gpi
end
end if !p[:group_post_images].nil?
files = []
p[:group_post_files].each do |id|
gpf = GroupPostFile.find(id) rescue nil
if !gpf.nil?
files << gpf
end
end if !p[:group_post_files].nil?
p[:group_post_images] = images
p[:group_post_files] = files
p
end
def post_image_params
params.require(:group_post_image).permit!
end
def post_file_params
params.require(:group_post_file).permit!
end
def group_params
p = params.require(:group).permit!
p["user_ids"] = [] if p["user_ids"].nil?
p["user_ids"] << current_user.id.to_s
p["admins"] = []
p["admins"] << current_user.id.to_s
p
end
end