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