chris tags update

This commit is contained in:
Matthew K. Fu JuYuan committed 2013-04-26 11:26:10 +08:00
1 parent 2945e14385
commit d047a3d62a
102 files changed
+3111 -378

No files matched your search

+7 -21
View File
@@ -2,16 +2,10 @@ class Admin::TagsController < OrbitBackendController
before_filter :force_order_for_visitor,:only=>[:index]
before_filter :force_order_for_user,:except => [:index]
before_filter :for_app_sub_manager,:except => [:index]
# layout 'new_admin'
# before_filter :authenticate_user!
# before_filter :is_admin?
# before_filter :set_module_app
before_filter :set_module_app
def index
get_tags
@module_app_id = @module_app.id rescue nil
@tags = get_tags
end
def new
@@ -23,12 +17,7 @@ class Admin::TagsController < OrbitBackendController
end
def create
if params[:tag][:module_app_id].blank?
@tag = Tag.create(params[:tag])
else
module_app = ModuleApp.find(params[:tag][:module_app_id])
@tag = eval("#{module_app.key.camelize}Tag").create(params[:tag])
end
@tag = @module_app ? @module_app.tags.create(params[:tag]) : Tag.create(params[:tag])
end
def update
@@ -47,15 +36,12 @@ class Admin::TagsController < OrbitBackendController
protected
def get_tags
@tags = (@module_app ? @module_app.tags : Tag.all)
@tags = @module_app.blank? ? Tag.all : @module_app.tags
end
def setup_vars
@app_key = request.env['HTTP_REFERER'].split('/')[4]
if @app_key
@app_key.gsub!(/[?].*/, '')
@module_app = ModuleApp.first(conditions: {:key => @app_key})
end
def set_module_app
@module_app = ModuleApp.find(params[:module_app_id]) if params[:module_app_id]
@module_app_id = @module_app.id rescue nil
end
end
@@ -1,6 +1,7 @@
class OrbitBackendController < ApplicationController
include OrbitCoreLib::AppBackendUtility
include OrbitCoreLib::PermissionUtility
include OrbitTag::Tagging
include AdminHelper
include ApplicationHelper
@@ -60,6 +61,20 @@ class OrbitBackendController < ApplicationController
when :referenced_in
objects = get_objects_from_referenced_objects(object_class.relations[option].class_name.constantize, objects, "#{option}_id")
end
elsif option.eql?('tags')
tag_array = @module_app.tags.inject([]){ |result, value|
result << [value.name, value]
}
params[:direction].eql?('asc') ? tag_array.sort : tag_array.sort.reverse!
sorted_objects = Array.new
tag_array.each do |x|
taggings = x[1].taggings
taggings.each {|tagging| sorted_objects << tagging.taggable }
end
# debugger
sorted_objects.flatten!
sorted_objects.uniq!
objects = get_with_nil(objects, option, sorted_objects)
end
end
end