|
|
|
@ -320,6 +320,86 @@ class TagsController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def update_org_subfield_tag_name
|
|
|
|
|
@tag_name = params[:tagName]
|
|
|
|
|
@rename_tag_name = params[:renameName]
|
|
|
|
|
@taggable_id = params[:taggableId]
|
|
|
|
|
@taggable_type = numbers_to_object_type(params[:taggableType])
|
|
|
|
|
@rename_tag = (ActsAsTaggableOn::Tag.find_by_name(@rename_tag_name)) #查找重命名后的tag
|
|
|
|
|
@tag_id = (ActsAsTaggableOn::Tag.find_by_name(@tag_name)).id #重命名前的tag_id
|
|
|
|
|
@taggings = ActsAsTaggableOn::Tagging.find_by_tag_id_and_taggable_id_and_taggable_type(@tag_id,@taggable_id,@taggable_type) unless @taggable_id.blank?
|
|
|
|
|
@obj = get_object(@taggable_id,params[:taggableType]) unless @taggable_id.blank?
|
|
|
|
|
if @taggable_id.blank? #如果没有传tag_id,那么直接更新tag_name就好了。但是要防止 重命名后的tag存在。
|
|
|
|
|
if params[:org_subfield_id]
|
|
|
|
|
org_subfield = OrgSubfield.find params[:org_subfield_id]
|
|
|
|
|
if org_subfield
|
|
|
|
|
org_subfield.attachments.each do |attachment|
|
|
|
|
|
taggings = ActsAsTaggableOn::Tagging.find_by_tag_id_and_taggable_id_and_taggable_type(@tag_id,attachment.id,attachment.class)
|
|
|
|
|
if taggings
|
|
|
|
|
taggings.delete
|
|
|
|
|
attachment.tag_list.add(@rename_tag_name.split(","))
|
|
|
|
|
attachment.save
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
if(@rename_tag.nil?) #这次命名的是新的tag
|
|
|
|
|
|
|
|
|
|
# 是否还有其他记录 引用了 tag_id
|
|
|
|
|
@tagging = ActsAsTaggableOn::Tagging.where("tag_id = #{@tag_id}")
|
|
|
|
|
# 如果taggings表中记录为 1 ,那么改变@tag_id对应的tag的名字
|
|
|
|
|
if @tagging.count == 1
|
|
|
|
|
@tag = ActsAsTaggableOn::Tag.find_by_id(@tag_id)
|
|
|
|
|
@tag.update_attributes({:name=>@rename_tag_name})
|
|
|
|
|
else #如果tagging表中的记录大于1,那么就要新增tag记录
|
|
|
|
|
|
|
|
|
|
unless @obj.nil?
|
|
|
|
|
@obj.tag_list.add(@rename_tag_name.split(","))
|
|
|
|
|
@obj.save
|
|
|
|
|
end
|
|
|
|
|
#删除原来的对应的taggings的记录
|
|
|
|
|
unless @taggings.nil?
|
|
|
|
|
@taggings.delete
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else #这是已有的tag
|
|
|
|
|
# 更改taggings记录里的tag_id
|
|
|
|
|
unless @taggings.nil?
|
|
|
|
|
@taggings.update_attributes({:tag_id=>@rename_tag.id})
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
@obj_flag = params[:taggableType]
|
|
|
|
|
if @obj && @obj_flag == '6' && @obj.container.kind_of?(OrgSubfield)
|
|
|
|
|
@org_subfield = @obj.container
|
|
|
|
|
@tag_list = @tag_list = get_org_subfield_tag_list @org_subfield
|
|
|
|
|
elsif params[:org_subfield_id]
|
|
|
|
|
@org_subfield = OrgSubfield.find(params[:org_subfield_id])
|
|
|
|
|
@tag_list = get_org_subfield_tag_list @org_subfield
|
|
|
|
|
|
|
|
|
|
#这里要引用FilesController里的逻辑了。将资源库当前的文件列表刷新一遍。
|
|
|
|
|
@flag = params[:flag] || false
|
|
|
|
|
sort = ""
|
|
|
|
|
@sort = ""
|
|
|
|
|
@order = ""
|
|
|
|
|
@is_remote = false
|
|
|
|
|
@isproject = false
|
|
|
|
|
|
|
|
|
|
sort = "#{Attachment.table_name}.created_on desc"
|
|
|
|
|
|
|
|
|
|
@containers = [ OrgSubfield.includes(:attachments).reorder(sort).find(@org_subfield.id)]
|
|
|
|
|
|
|
|
|
|
show_attachments @containers
|
|
|
|
|
elsif @obj && @obj_flag == '5'
|
|
|
|
|
@forum = @obj
|
|
|
|
|
end
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def show_attachments obj
|
|
|
|
|
@attachments = []
|
|
|
|
|
obj.each do |container|
|
|
|
|
|