Add tagged_ids to taggable

Changes for queries
This commit is contained in:
chris 2013-05-03 16:15:37 +08:00
parent a4aef30a9c
commit 36da89f93e
33 changed files with 149 additions and 227 deletions

View File

@ -11,7 +11,7 @@ class Admin::AssetsController < OrbitBackendController
def new
@asset = Asset.new
@asset_categories = AssetCategory.all
@tags = AssetTag.all
@tags = get_tags
respond_to do |format|
format.html {}
format.js { render 'js/show_pop_up', :locals => {:partial => 'admin/assets/new'} }
@ -21,7 +21,7 @@ class Admin::AssetsController < OrbitBackendController
def edit
@asset = Asset.find(params[:id])
@asset_categories = AssetCategory.all
@tags = AssetTag.all
@tags = get_tags
respond_to do |format|
format.html {}
format.js { render 'js/show_pop_up', :locals => {:partial => 'admin/assets/edit'} }
@ -46,7 +46,7 @@ class Admin::AssetsController < OrbitBackendController
else
flash[:error] = t('create.fail')
@asset_categories = AssetCategory.all
@tags = AssetTag.all
@tags = get_tags
respond_to do |format|
format.js {
if params[:uploader]
@ -69,7 +69,7 @@ class Admin::AssetsController < OrbitBackendController
else
flash[:error] = t('update.fail')
@asset_categories = AssetCategory.all
@tags = AssetTag.all
@tags = get_tags
respond_to do |format|
format.html { render :action => :edit }
format.js { render 'js/reload_pop_up', :locals => {:value => @asset, :values => nil, :partial => 'admin/assets/edit', :locals => {:is_html => false}} }
@ -96,7 +96,7 @@ class Admin::AssetsController < OrbitBackendController
def file_upload
@asset = Asset.new
@asset_categories = AssetCategory.all
@tags = AssetTag.all
@tags = get_tags
render :layout => false
end

View File

@ -17,25 +17,16 @@ class DefaultWidgetController< OrbitWidgetController
result_objects = nil
if !params["tag_id"].blank?
@tags = Tag.find(params["tag_id"]) rescue nil
result_ids = nil
result_ids = @tags.collect{|tag| tag.send(ori_class_name.downcase.pluralize).entries.collect{|t| t.id}}
if params["category_id"].blank? #has tag no cate
#nothing
result = ori_class_name.constantize.where(:tagged_ids.in => params["tag_id"])
else #has tag and cate
# result_ids = @tags.collect{|tag| tag.send(ori_class_name.downcase.pluralize).where(:#{get_category_field_name(ori_class_name)}.in=>params["category_id"]).available_for_lang(I18n.locale).can_display.collect{|t| t.id}}.flatten
result_ids << eval("#{ori_class_name}.where(:#{get_category_field_name(ori_class_name)}.in=>params['category_id']).entries.collect{|t| t.id}")
result_ids.flatten!
result = eval("#{ori_class_name}.where(:#{get_category_field_name(ori_class_name)}.in=>params['category_id'], :tagged_ids.in => params['tag_id'])")
end
result = eval("#{ori_class_name}.where(:id=>result_ids)")
elsif params["category_id"].blank? #no tag no cate
result = eval(@default_widget["query"])
else #no tag has cate
result = eval("#{ori_class_name}.where(:#{get_category_field_name(ori_class_name)}.in=>params['category_id'])")
end
date_now = Time.now
result.available_for_lang(I18n.locale).can_display.desc(:is_top, :postdate)
end

View File

@ -2,6 +2,8 @@ class Asset
include Mongoid::Document
include Mongoid::Timestamps
include OrbitTag::Taggable
taggable
mount_uploader :data, FileAssetUploader
@ -16,18 +18,13 @@ class Asset
belongs_to :asset_category
belongs_to :assetable, polymorphic: true
has_and_belongs_to_many :tags, :class_name => "AssetTag"
before_save :clean_tags
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
protected
def clean_tags
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -6,4 +6,12 @@ class Tagging
belongs_to :tag
belongs_to :taggable, polymorphic: true
before_destroy :update_taggable_tag_ids
private
def update_taggable_tag_ids
self.taggable.remove_id(self.tag.id)
end
end

View File

@ -13,17 +13,35 @@ module OrbitTag
def init_tag
class_eval do
field :tags_to_destroy, type: Array, default: []
field :tagged_ids, type: Array, default: []
has_many :taggings, as: :taggable, autosave: true, dependent: :destroy
accepts_nested_attributes_for :taggings, allow_destroy: true
after_save :remove_taggings, unless: Proc.new{self.tags_to_destroy.blank?}
def remove_id(id)
self.class.without_callback(:save, :after, :remove_taggings) do
self.update_attribute(:tagged_ids, self.tagged_ids - [id.to_s])
end
end
def sorted_tags
if tags.blank?
[]
else
tag_array = tags.inject([]){ |result, value|
result << [value.name, value]
}
tag_array.sort.map{|x| x[1] }
end
end
def tags
self.taggings.blank? ? [] : self.taggings.map{|t| t.tag}
self.taggings.blank? ? [] : self.taggings.map{|t| t.tag}.compact
end
def tags=(tag_ids)
tag_ids = [tag_ids].flatten
ids = [tag_ids].flatten
tag_ids.delete('')
ids = self.taggings.blank? ? [] : self.taggings.map{|t| t.tag.id}
tag_ids.each do |tag_id|
@ -40,17 +58,9 @@ module OrbitTag
def tag_ids=(ids)
self.tags = ids
end
def sorted_tags
if tags.blank?
[]
else
tag_array = tags.inject([]){ |result, value|
result << [value.name, value]
}
tag_array.sort.map{|x| x[1] }
end
ids = [ids].flatten
ids.delete('')
self.tagged_ids = ids
end
private

View File

@ -1,8 +0,0 @@
class Panel::Announcement::BackEnd::TagsController < Admin::TagsController
def initialize
super
@app_title = 'announcement'
end
end

View File

@ -39,17 +39,13 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
else
date_now = Time.now
if !params[:category_id].blank? && !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.bulletins.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
@bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => params[:category_id], :tagged_ids => params[:tag_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:category_id].blank?
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.bulletins.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
@bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:tagged_ids => params[:tag_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
else
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
end

View File

@ -34,9 +34,7 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
@bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => @category_id).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num)
@current_category = BulletinCategory.from_id(@category_id) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.bulletins.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num)
@bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:tagged_ids => params[:tag_id])any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num)
else
@bulletins = Bulletin.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num)
end
@ -59,11 +57,9 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(@page_num )
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.bulletins.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(@page_num )
@bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:tagged_ids => params[:tag_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num)
else
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(@page_num )
@bulletins = Bulletin.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(@page_num )
end
get_categorys
@ -71,13 +67,13 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
end
def reload_bulletins
@selected_tag = AnnouncementTag.find(params[:tag_id])
@bulletins = @selected_tag.get_visible_bulletins(:postdate).available_for_lang(I18n.locale).can_display.page(params[:page]).per(5) rescue nil
@selected_tag = Tag.find(params[:tag_id])
@bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:tagged_ids => params[:tag_id]).where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort).page(params[:page]).per(5) rescue nil
end
def reload_web_links
@selected_tag = AnnouncementTag.find(params[:tag_id])
@web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links(:created_at).available_for_lang(I18n.locale).page(params[:page]).per(5) rescue nil
@selected_tag = Tag.find(params[:tag_id])
@web_links = WebLink.where(:name => @selected_tag.name).where(:is_hidden => false).desc(:is_top, sort).available_for_lang(I18n.locale).page(params[:page]).per(5) rescue nil
end
def bulletins_side_bar

View File

@ -199,11 +199,6 @@ class Bulletin
return nil
end
# def sorted_tags
# tags.order_by(I18n.locale, :asc)
# end
def to_preview
preview_object = Preview.new(:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_announcement_front_end_bulletin_path",:object_class_type=>"Bulletin")

View File

@ -16,7 +16,7 @@
<div class="news_prev">prev</div>
<div class="news_next">next</div>
<ul class="news_list">
<% tag.bulletins.each do |post| %>
<% Bulletin.where(:tagged_ids => tag).each do |post| %>
<li><%= link_to post.title, panel_announcement_front_end_bulletin_path(post) %></li>
<% end %>
</ul>

View File

@ -20,10 +20,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
# @archive_files = ArchiveFile.where( :is_hidden => false ).desc(:is_top).page(params[:page]).per(@page_num)
if !params[:category_id].blank? && !params[:tag_id].blank?
@tag = ArchiveTag.find(params[:tag_id]) rescue nil
@tag = ArchiveTag.where(key: params[:tag_id])[0] unless @tag
@archive_files = @tag.archive_files.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@archive_files = @archive_files.can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@archive_files = @archive_files.can_display.where(:archive_file_category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
@ -31,9 +28,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
@archive_files = ArchiveFile.can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = ArchiveTag.find(params[:tag_id]) rescue nil
@tag = ArchiveTag.where(key: params[:tag_id])[0] unless @tag
@archive_files = @tag.archive_files.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@archive_files = ArchiveFile.can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
else
@archive_files = ArchiveFile.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
end
@ -66,9 +61,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
@archive_files = ArchiveFile.can_display.where(:archive_file_category_id => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = ArchiveTag.find(params[:tag_id]) rescue nil
@tag = ArchiveTag.where(key: params[:tag_id])[0] unless @tag
@archive_files = @tag.archive_files.can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num)
@archive_files = ArchiveFile.can_display.where(:tagged_ids => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
else
@archive_files = ArchiveFile.can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num)
end

View File

@ -31,8 +31,7 @@ class Panel::Archive::Widget::ArchiveFilesController < OrbitWidgetController
@archive_files = ArchiveFile.all.can_display.any_in(:archive_file_category_id => params[:category_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@archive_file_categorys = ArchiveFileCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
elsif !params[:tag_id].blank?
@tag = ArchiveTag.find(params[:tag_id]) rescue nil
@tag = ArchiveTag.where(key: params[:tag_id])[0] unless @tag
@archive_files = ArchiveFile.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
get_categorys
else
@archive_files = ArchiveFile.all.can_display.merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)

View File

@ -61,10 +61,6 @@ class ArchiveFile
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def get_file_icon( file_data )
file_icon = "<span class=\"o-archives-file-type\">#{file_data.split('.')[-1]}</span>".html_safe

View File

@ -26,8 +26,7 @@ class Panel::Faq::FrontEnd::QasController < OrbitWidgetController
@qas = Qa.all.can_display.any_in(:qa_category_id => params[:category_id]).merge(QaCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
@qa_categorys = QaCategory.any_in(:_id => @item.category).excludes('disable' => true) rescue nil
elsif params[:tag_id] !="[]" && !params[:tag_id].blank?
@tag = FaqTag.find(params[:tag_id]) rescue nil
@tag = FaqTag.where(key: params[:tag_id])[0] unless @tag
Qa.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(QaCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
@qas = @tag.archive_files.can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num)
get_categorys
else

View File

@ -63,10 +63,6 @@ class Qa
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (question_translations[locale].blank? rescue true)
@ -87,7 +83,7 @@ class Qa
self.qa_links.each do |link|
link.delete if link.url.blank? && link.title.blank?
end
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -12,7 +12,7 @@ class Panel::Gallery::BackEnd::AlbumImagesController < OrbitBackendController
else
@authenticated = false
end
@tags = GalleryTag.all
@tags = get_tags
@image = GalleryImage.find(params[:id])
@albumid = @image.gallery_album_id
@album = GalleryAlbum.find(@albumid)

View File

@ -16,7 +16,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
end
@categorylist = GalleryCategory.all
@cid = params['cat']
@tags = GalleryTag.all
@tags = get_tags
end
def show
@ -26,7 +26,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
@authenticated = false
end
@album = GalleryAlbum.find(params[:id])
@tags = GalleryTag.all
@tags = get_tags
end
def new
@ -55,10 +55,10 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
if @tags
if @tags.kind_of?(Array)
@tags.each do |tag|
@albums << GalleryAlbum.where(tag_ids: tag)
@albums << GalleryAlbum.where(tagged_ids: tag)
end
else
@albums << GalleryAlbum.where(tag_ids: @tags)
@albums << GalleryAlbum.where(tagged_ids: @tags)
end
else
@albums << GalleryAlbum.all
@ -69,10 +69,10 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
if @tags
if @tags.kind_of?(Array)
@tags.each do |tag|
@albums << category.gallery_albums.where(tag_ids: tag)
@albums << category.gallery_albums.where(tagged_ids: tag)
end
else
@albums << category.gallery_albums.where(tag_ids: @tags)
@albums << category.gallery_albums.where(tagged_ids: @tags)
end
else
@albums << category.gallery_albums.all
@ -83,10 +83,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
@albums.each do |album|
@albs = Array.new
album.each do |values|
tags = Array.new
values.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
tags = Tag.find(values.tagged_ids).map{|t| t.name}
category = GalleryCategory.find(values.gallery_category_id).name
@albs << {"_id"=>values.id,"show_path"=>panel_gallery_back_end_album_path(values),"cover"=>values.cover,"cover_path"=>values.cover_path,"description"=>values.description,"category_name"=>category,"gallery_category_id" => values.gallery_category_id,"name"=>values.name,"tag_ids"=>values.tag_ids,"tag_names"=>tags}
end
@ -107,7 +104,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
@images = @album.gallery_images.all
@album_name = @album.name_translations
@cover = @album.cover
@tags = GalleryTag.all
@tags = get_tags
end
end
@ -123,11 +120,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
output = Array.new
albums.each do |album|
tag_names = Array.new
album.tag_ids.each do |tag|
tag_names << GalleryTag.find(tag)[I18n.locale]
end
tag_names = Tag.find(album.tagged_ids).map{|t| t.name}
output << {
album_cover_file: "http://#{request.host_with_port}#{album.cover_path}",
@ -146,11 +139,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
output = Array.new
images.each do |image|
tags = Array.new
image.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
tags = Tag.find(image.tagged_ids).map{|t| t.name}
output << {
image_title: image.title,
@ -169,10 +158,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
@images = @album.gallery_images.all
@output = Array.new
@images.each do |values|
tags = Array.new
values.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
tags = Tag.find(values.tagged_ids).map{|t| t.name}
@output << { _id: values.id,
theater_link: panel_gallery_back_end_album_image_path(values),
description: values.description,
@ -190,8 +176,8 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
if @authenticated
render :json=>{"images" => @output, "tags" => @album.tag_ids}.to_json
else
@album.tag_ids.each do |tag|
@tag_names << GalleryTag.find(tag)[I18n.locale]
@album.tagged_ids.each do |tag|
@tag_names << Tag.find(tag).name
end
render :json=>{"images" => @output, "tags" => @album.tag_ids, "tag_names" => @tag_names}.to_json
end
@ -235,7 +221,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
if params['delete_cover'] == "true"
@album.update_attributes(:cover=>"default")
end
@tags = GalleryTag.all
@tags = get_tags
render :action => :show
end
end

View File

@ -4,10 +4,7 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController
def show
@album = GalleryAlbum.find(params[:id])
@tags = Array.new
@album.tag_ids.each do |tag|
@tags << GalleryTag.find(tag)[I18n.locale]
end
@tags = Tag.find(@album.tagged_ids).map{|t| t.name}
end
def get_albums
@ -18,10 +15,10 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController
if @tags
if @tags.kind_of?(Array)
@tags.each do |tag|
@albums << GalleryAlbum.where(tag_ids: tag)
@albums << GalleryAlbum.where(tagged_ids: tag)
end
else
@albums << GalleryAlbum.where(tag_ids: @tags)
@albums << GalleryAlbum.where(tagged_ids: @tags)
end
else
@albums << GalleryAlbum.all
@ -32,10 +29,10 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController
if @tags
if @tags.kind_of?(Array)
@tags.each do |tag|
@albums << category.gallery_albums.where(tag_ids: tag)
@albums << category.gallery_albums.where(tagged_ids: tag)
end
else
@albums << category.gallery_albums.where(tag_ids: @tags)
@albums << category.gallery_albums.where(tagged_ids: @tags)
end
else
@albums << category.gallery_albums.all
@ -46,10 +43,7 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController
@albums.each do |album|
@albs = Array.new
album.each do |values|
tags = Array.new
values.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
tags = Tag.find(values.tagged_ids).map{|t| t.name}
category = GalleryCategory.find(values.gallery_category_id).name
@albs << {"_id"=>values.id,"show_path"=>panel_gallery_front_end_album_path(values),"cover"=>values.cover,"cover_path"=>values.cover_path,"description"=>values.description,"category_name"=>category,"gallery_category_id" => values.gallery_category_id,"name"=>values.name,"tag_ids"=>values.tag_ids,"tag_names"=>tags}
end
@ -63,10 +57,7 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController
@images = @album.gallery_images.all
@output = Array.new
@images.each do |values|
tags = Array.new
values.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
tags = Tag.find(values.tagged_ids).map{|t| t.name}
@output << {:_id => values.id,
:theater_link => theater_panel_gallery_front_end_album_path(values),
:description => values.description,
@ -95,10 +86,7 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController
@album = GalleryAlbum.find(@albumid)
@images = @album.gallery_images.all
tags = @album.tag_ids
@tagnames = Array.new
tags.each do |tag|
@tagnames << GalleryTag.find(tag)[I18n.locale]
end
@tagnames = Tag.find(tags.tagged_ids).map{|t| t.name}
@back_link = panel_gallery_front_end_album_path(@albumid)
end
end

View File

@ -4,7 +4,7 @@ include AdminHelper
@authenticated = false
@categorylist = GalleryCategory.all
@cid = params['cat']
@tags = GalleryTag.all
@tags = get_tags
end
def new_category
@ -62,10 +62,10 @@ include AdminHelper
if @tags
if @tags.kind_of?(Array)
@tags.each do |tag|
@albums << GalleryAlbum.where(tag_ids: tag)
@albums << GalleryAlbum.where(tagged_ids: tag)
end
else
@albums << GalleryAlbum.where(tag_ids: @tags)
@albums << GalleryAlbum.where(tagged_ids: @tags)
end
else
@albums << GalleryAlbum.all
@ -76,10 +76,10 @@ include AdminHelper
if @tags
if @tags.kind_of?(Array)
@tags.each do |tag|
@albums << category.gallery_albums.where(tag_ids: tag)
@albums << category.gallery_albums.where(tagged_ids: tag)
end
else
@albums << category.gallery_albums.where(tag_ids: @tags)
@albums << category.gallery_albums.where(tagged_ids: @tags)
end
else
@albums << category.gallery_albums.all
@ -90,10 +90,7 @@ include AdminHelper
@albums.each do |album|
@albs = Array.new
album.each do |values|
tags = Array.new
values.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
tags = Tag.find(values.tagged_ids).map{|t| t.name}
category = GalleryCategory.find(values.gallery_category_id).name
@albs << {"_id"=>values.id,"cover"=>values.cover,"cover_path"=>values.cover_path,"description"=>values.description,"category_name"=>category,"gallery_category_id" => values.gallery_category_id,"name"=>values.name,"tag_ids"=>values.tag_ids,"tag_names"=>tags}
end

View File

@ -1,13 +1,15 @@
class GalleryImage
include Mongoid::Document
include Mongoid::Timestamps
include OrbitTag::Taggable
taggable
mount_uploader :file, GalleryUploader
field :title
field :description, localize: true
has_and_belongs_to_many :tags, :class_name => "GalleryTag"
# has_and_belongs_to_many :tags, :class_name => "GalleryTag"
belongs_to :gallery_album

View File

@ -4,6 +4,8 @@ class WritingBook
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
@ -17,7 +19,7 @@ class WritingBook
field :publisher, localize: true
field :editor, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalBookTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalBookTag"
has_and_belongs_to_many :book_author_types
@ -78,10 +80,6 @@ class WritingBook
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)

View File

@ -3,6 +3,9 @@ class WritingConference
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
LANGUAGE_TYPES = [ "English", "Chinese" ]
@ -13,7 +16,7 @@ class WritingConference
field :location, localize: true
field :sponsor, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalConferenceTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalConferenceTag"
has_and_belongs_to_many :conference_author_types
has_and_belongs_to_many :conference_paper_types
has_and_belongs_to_many :conference_co_authors
@ -79,10 +82,6 @@ class WritingConference
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -122,7 +121,7 @@ class WritingConference
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
self.conference_author_type_ids.delete('')
self.conference_level_type_ids.delete('')
end

View File

@ -5,6 +5,9 @@ class Diploma
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
LANGUAGE_TYPES = [ "English", "Chinese" ]
@ -15,7 +18,7 @@ class Diploma
field :department, localize: true
field :degree, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalDiplomaTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalDiplomaTag"
field :year
field :language
@ -51,10 +54,6 @@ class Diploma
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -74,7 +73,7 @@ class Diploma
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -5,6 +5,9 @@ class Experience
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
LANGUAGE_TYPES = [ "English", "Chinese" ]
@ -14,7 +17,7 @@ class Experience
field :department, localize: true
field :job_title, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalExperienceTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalExperienceTag"
belongs_to :experience_category
@ -65,10 +68,6 @@ class Experience
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -88,7 +87,7 @@ class Experience
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -5,13 +5,16 @@ class Honor
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
LANGUAGE_TYPES = [ "English", "Chinese" ]
has_and_belongs_to_many :tags, :class_name => "PersonalHonorTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalHonorTag"
belongs_to :honor_category
@ -62,10 +65,6 @@ class Honor
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -85,7 +84,7 @@ class Honor
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -3,13 +3,16 @@ class WritingJournal
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
LANGUAGE_TYPES = [ "English", "Chinese" ]
field :paper_title, localize: true
field :journal_title, localize: true
field :authors, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalJournalTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalJournalTag"
has_and_belongs_to_many :journal_author_types
has_and_belongs_to_many :journal_level_types
has_and_belongs_to_many :journal_co_authors
@ -80,10 +83,6 @@ class WritingJournal
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -122,7 +121,7 @@ class WritingJournal
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
self.journal_author_type_ids.delete('')
self.journal_level_type_ids.delete('')
end

View File

@ -5,6 +5,9 @@ class Lab
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
LANGUAGE_TYPES = [ "English", "Chinese" ]
@ -15,7 +18,7 @@ class Lab
field :participating_professor, localize: true
field :participating_student, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalLabTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalLabTag"
field :year
field :language
@ -71,10 +74,6 @@ class Lab
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -102,7 +101,7 @@ class Lab
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -5,6 +5,9 @@ class WritingPatent
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
LANGUAGE_TYPES = [ "English", "Chinese" ]
@ -13,7 +16,7 @@ class WritingPatent
field :patent_title, localize: true
field :authors, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalPatentTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalPatentTag"
belongs_to :writing_patent_category
@ -71,10 +74,6 @@ class WritingPatent
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -102,7 +101,7 @@ class WritingPatent
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -5,6 +5,9 @@ class Project
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
LANGUAGE_TYPES = [ "English", "Chinese" ]
@ -15,7 +18,7 @@ class Project
field :participator, localize: true
field :unit, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalProjectTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalProjectTag"
belongs_to :project_category
@ -73,10 +76,6 @@ class Project
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -104,7 +103,7 @@ class Project
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -5,6 +5,9 @@ class Research
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include OrbitTag::Taggable
taggable
# scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
LANGUAGE_TYPES = [ "English", "Chinese" ]
@ -14,7 +17,7 @@ class Research
field :authors, localize: true
field :extracted_chapters, localize: true
has_and_belongs_to_many :tags, :class_name => "PersonalResearchTag"
# has_and_belongs_to_many :tags, :class_name => "PersonalResearchTag"
field :year
field :language
@ -68,10 +71,6 @@ class Research
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -99,7 +98,7 @@ class Research
end
def clean_checkboxs
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end

View File

@ -13,14 +13,12 @@ class Panel::WebResource::FrontEnd::WebLinksController < OrbitWidgetController
date_now = Time.now
if !params[:category_id].blank?
@web_links = WebLink.where( :is_hidden => false ).where(:web_link_category_id => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(10)
@web_links = WebLink.where( :is_hidden => false ).where(:web_link_category_id => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
@current_category = WebLinkCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = WebResourceTag.find(params[:tag_id]) rescue nil
@tag = WebResourceTag.where(key: params[:tag_id])[0] unless @tag
@web_links = @tag.archive_files.where( :is_hidden => false ).desc( :is_top ).page( params[:page_main] ).per(10)
@web_links = WebLink.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
else
@web_links = WebLink.where( :is_hidden => false ).desc( :is_top ).page( params[:page_main] ).per(10)
@web_links = WebLink.where( :is_hidden => false ).desc( :is_top ).page( params[:page_main] ).per(@page_num)
end
get_categorys

View File

@ -10,14 +10,12 @@ class Panel::WebResource::Widget::WebLinksController < OrbitWidgetController
def index
if !params[:category_id].blank?
@web_links = WebLink.where(:web_link_category => params[:category_id]).available_for_lang(I18n.locale).desc( :is_top, :postdate).page( params[:page]).per(10)
@web_links = WebLink.where(:web_link_category => params[:category_id]).available_for_lang(I18n.locale).desc( :is_top, :postdate).page( params[:page]).per(@page_num)
@current_category = WebLinkCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = WebResourceTag.find(params[:tag_id]) rescue nil
@tag = WebResourceTag.where(key: params[:tag_id])[0] unless @tag
@web_links = @tag.web_links.desc( :is_top, :postdate).page( params[:page]).per(10)
@web_links = WebLink.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
else
@web_links = WebLink.available_for_lang(I18n.locale).desc( :is_top, :postdate).page( params[:page]).per(10)
@web_links = WebLink.available_for_lang(I18n.locale).desc( :is_top, :postdate).page( params[:page]).per(@page_num)
end
end

View File

@ -57,10 +57,6 @@ class WebLink
self.is_top
end
def sorted_tags
tags.order_by(I18n.locale, :asc)
end
def update_avliable_language
VALID_LOCALES.each do |locale|
if (title_translations[locale].blank? rescue true)
@ -80,7 +76,7 @@ class WebLink
end
def clean_tags
self.tag_ids.delete('')
self.tagged_ids.delete('')
end
end