2015-12-24 10:40:00 +08:00
|
|
|
|
class OrgSubfieldsController < ApplicationController
|
2016-01-13 15:17:13 +08:00
|
|
|
|
layout 'base_org'
|
2015-12-24 10:40:00 +08:00
|
|
|
|
def create
|
2016-01-13 09:56:24 +08:00
|
|
|
|
if OrgSubfield.where("organization_id=#{params[:organization_id]} and name=?",params[:name]).count == 0
|
|
|
|
|
@res = true
|
|
|
|
|
@subfield = OrgSubfield.create(:name => params[:name])
|
|
|
|
|
@organization = Organization.find(params[:organization_id])
|
|
|
|
|
@organization.org_subfields << @subfield
|
|
|
|
|
if !params[:sub_dir].blank?
|
|
|
|
|
sql = "select subfield_subdomain_dirs.* from subfield_subdomain_dirs, org_subfields where subfield_subdomain_dirs.org_subfield_id = org_subfields.id "+
|
|
|
|
|
"and org_subfields.organization_id=#{@organization.id} and subfield_subdomain_dirs.name='#{params[:sub_dir]}'"
|
|
|
|
|
if SubfieldSubdomainDir.find_by_sql(sql).count == 0
|
|
|
|
|
SubfieldSubdomainDir.create(:org_subfield_id => @subfield.id, :name => params[:sub_dir])
|
|
|
|
|
end
|
2016-01-13 09:34:33 +08:00
|
|
|
|
end
|
2016-01-13 09:56:24 +08:00
|
|
|
|
@subfield.update_attributes(:priority => @subfield.id, :field_type => params[:field_type])
|
|
|
|
|
else
|
|
|
|
|
@res = false
|
2016-01-13 09:34:33 +08:00
|
|
|
|
end
|
2015-12-24 10:40:00 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def show
|
2016-01-12 16:43:40 +08:00
|
|
|
|
@organization = Organization.find(params[:id])
|
2016-01-13 09:34:33 +08:00
|
|
|
|
@org_subfield = OrgSubfield.find_by_sql("select distinct org_subfields.* from org_subfields,"+
|
|
|
|
|
"subfield_subdomain_dirs where org_subfields.id = subfield_subdomain_dirs.org_subfield_id and "+
|
2016-01-13 16:21:37 +08:00
|
|
|
|
" org_subfields.organization_id=#{@organization.id} and subfield_subdomain_dirs.name='#{params[:sub_dir_name]}'").first
|
2016-01-13 15:17:13 +08:00
|
|
|
|
if @org_subfield.field_type == 'Post'
|
|
|
|
|
redirect_to organization_path(@organization, :org_subfield_id => @org_subfield.id)
|
|
|
|
|
end
|
2016-01-13 09:34:33 +08:00
|
|
|
|
if params[:sort]
|
|
|
|
|
params[:sort].split(",").each do |sort_type|
|
|
|
|
|
order_by = sort_type.split(":")
|
2016-01-12 16:43:40 +08:00
|
|
|
|
|
2016-01-13 09:34:33 +08:00
|
|
|
|
case order_by[0]
|
|
|
|
|
when "filename"
|
|
|
|
|
attribute = "filename"
|
|
|
|
|
when "size"
|
|
|
|
|
attribute = "filesize"
|
|
|
|
|
when "attach_type"
|
|
|
|
|
attribute = "attachtype"
|
|
|
|
|
when "content_type"
|
|
|
|
|
attribute = "created_on"
|
|
|
|
|
when "field_file_dense"
|
|
|
|
|
attribute = "is_public"
|
|
|
|
|
when "downloads"
|
|
|
|
|
attribute = "downloads"
|
|
|
|
|
when "created_on"
|
|
|
|
|
attribute = "created_on"
|
|
|
|
|
when "quotes"
|
|
|
|
|
attribute = "quotes"
|
|
|
|
|
else
|
|
|
|
|
attribute = "created_on"
|
|
|
|
|
end
|
|
|
|
|
@sort = order_by[0]
|
|
|
|
|
@order = order_by[1]
|
|
|
|
|
if order_by.count == 1 && attribute
|
|
|
|
|
sort += "#{Attachment.table_name}.#{attribute} asc "
|
|
|
|
|
if sort_type != params[:sort].split(",").last
|
|
|
|
|
sort += ","
|
|
|
|
|
end
|
|
|
|
|
elsif order_by.count == 2 && order_by[1]
|
|
|
|
|
sort += "#{Attachment.table_name}.#{attribute} #{order_by[1]} "
|
|
|
|
|
if sort_type != params[:sort].split(",").last
|
|
|
|
|
sort += ","
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
sort = "#{Attachment.table_name}.created_on desc"
|
2015-12-24 10:40:00 +08:00
|
|
|
|
end
|
2016-01-13 09:34:33 +08:00
|
|
|
|
@container_type = 2
|
|
|
|
|
@containers = [ OrgSubfield.includes(:attachments).reorder(sort).find(@org_subfield.id)]
|
|
|
|
|
@organization = Organization.find(@containers.first.organization_id)
|
|
|
|
|
show_attachments @containers
|
|
|
|
|
@tag_list = attachment_tag_list @all_attachments
|
|
|
|
|
@page = params[:page] || 1
|
2016-01-13 15:17:13 +08:00
|
|
|
|
#render :layout => 'base_org'
|
2015-12-24 10:40:00 +08:00
|
|
|
|
end
|
2016-01-13 15:17:13 +08:00
|
|
|
|
|
2015-12-24 10:40:00 +08:00
|
|
|
|
def destroy
|
|
|
|
|
@subfield = OrgSubfield.find(params[:id])
|
|
|
|
|
@organization = Organization.find(@subfield.organization_id)
|
|
|
|
|
@subfield.destroy
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def update
|
|
|
|
|
@subfield = OrgSubfield.find(params[:id])
|
|
|
|
|
@organization = Organization.find(@subfield.organization_id)
|
|
|
|
|
@subfield.update_attributes(:name => params[:name])
|
|
|
|
|
end
|
|
|
|
|
|
2016-01-13 15:17:13 +08:00
|
|
|
|
def update_sub_dir
|
|
|
|
|
@org_subfield = OrgSubfield.find(params[:id])
|
|
|
|
|
sql = "select subfield_subdomain_dirs.* from subfield_subdomain_dirs, org_subfields where subfield_subdomain_dirs.org_subfield_id = org_subfields.id "+
|
|
|
|
|
"and org_subfields.organization_id=#{@org_subfield.organization.id} and subfield_subdomain_dirs.name='#{params[:sub_dir_name]}'"
|
|
|
|
|
if SubfieldSubdomainDir.find_by_sql(sql).count == 0
|
|
|
|
|
if @org_subfield.subfield_subdomain_dir
|
|
|
|
|
@sub_dir = @org_subfield.subfield_subdomain_dir
|
|
|
|
|
@sub_dir.update_attribute(:name, params[:sub_dir_name])
|
|
|
|
|
else
|
|
|
|
|
@sub_dir = SubfieldSubdomainDir.create(:org_subfield_id => @org_subfield.id, :name => params[:sub_dir_name])
|
|
|
|
|
end
|
|
|
|
|
@exist = false
|
|
|
|
|
else
|
|
|
|
|
@exist = true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def show_attachments obj
|
|
|
|
|
@attachments = []
|
|
|
|
|
obj.each do |container|
|
|
|
|
|
@attachments += container.attachments
|
|
|
|
|
end
|
|
|
|
|
@all_attachments = User.current.admin? ? @attachments : visable_attachemnts(@attachments)
|
|
|
|
|
@limit = 10
|
|
|
|
|
@feedback_count = @all_attachments.count
|
|
|
|
|
@feedback_pages = Paginator.new @feedback_count, @limit, params['page']
|
|
|
|
|
@offset ||= @feedback_pages.offset
|
|
|
|
|
#@curse_attachments_all = @all_attachments[@offset, @limit]
|
|
|
|
|
@obj_attachments = paginateHelper @all_attachments,10
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#获取指定资源列表的TAG的集合以及每个TAG的数量,降序排序
|
|
|
|
|
def attachment_tag_list attachments
|
|
|
|
|
tag_list = Hash.new
|
|
|
|
|
attachments.each do |attachment|
|
|
|
|
|
attachment.tag_list.map{|tag| tag_list.has_key?(tag) ? tag_list[tag] = tag_list[tag] + 1 : tag_list[tag] = 1}
|
|
|
|
|
end
|
|
|
|
|
tag_list.sort {|a,b| b[1]<=>a[1]}
|
|
|
|
|
end
|
2015-12-24 10:40:00 +08:00
|
|
|
|
end
|