New UI changes(tags, categories, authorisations, module index…)

To run:
  - ruby lib/remove_old_tags.rb DB_NAME
  - rake new_ui:migrate_tags
  - rake new_ui:migrate_categories['APP_KEY,''MODEL_NAME'] (check new_ui.rake for more details)
This commit is contained in:
chris committed 2013-07-02 16:46:44 +08:00
1 parent 07b3857465
commit 856898016b
1495 files changed
+52132 -9876

No files matched your search

-2
View File
@@ -3,7 +3,6 @@ class Asset
include Mongoid::Document
include Mongoid::Timestamps
include OrbitTag::Taggable
taggable
mount_uploader :data, FileAssetUploader
@@ -18,7 +17,6 @@ class Asset
belongs_to :asset_category
belongs_to :assetable, polymorphic: true
# has_and_belongs_to_many :tags, :class_name => "AssetTag"
before_save :clean_tags
+16
View File
@@ -0,0 +1,16 @@
class BufferCategory
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :category
belongs_to :categorizable, polymorphic: true
before_destroy :remove_categorizable_category_id
private
def remove_categorizable_category_id
self.categorizable.remove_id(self.category.id)
end
end
+37
View File
@@ -0,0 +1,37 @@
class Category
include Mongoid::Document
include Mongoid::Timestamps
include OrbitCoreLib::ObjectAuthable
field :disable, type: Boolean, default: false
field :title, localize: true
validates :title, :at_least_one => true
belongs_to :module_app
has_many :buffer_categories
scope :enabled, where(:disable.in => [false, nil, ''])
end
# base.instance_eval("scope :admin_manager_all,find(:all)")
# base.define_singleton_method :find do |*args|
# if args ==[:all]
# unscoped
# else
# res = unscoped.find(args)
# res.count == 1 ? res[0] : res
# end
# end
# base.define_singleton_method :first do |*args|
# all.first
# end
# base.define_singleton_method :last do |*args|
# all.last
# end
+8 -1
View File
@@ -8,7 +8,8 @@ class ModuleApp
field :title
field :sidebar_order,type: Integer,default: 0
has_many :tags, as: :module_tag, dependent: :destroy
has_many :categories, dependent: :destroy
has_many :module_tags, dependent: :destroy
def refetch_setting!(reg)
# %w{module_label category base_url version organization author intro update_info create_date}.each do |field|
@@ -20,6 +21,8 @@ class ModuleApp
self[:using_default_widget] = !reg.get_default_widget.blank?
self[:widgets] = reg.get_widgets
self[:has_tag] = reg.get_has_tags
self[:has_category] = reg.get_has_category
self[:is_authorizable] = reg.get_is_authorizable
end
@@ -159,4 +162,8 @@ class ModuleApp
end
end
def tags
self.module_tags.map{|t| t.tag }
end
end
+46
View File
@@ -0,0 +1,46 @@
class ModuleTag
include Mongoid::Document
include Mongoid::Timestamps
field :is_default, type: Boolean, default: false
field :name, localize: true
has_one :tag, as: :tag_lease, autosave: true
belongs_to :module_app
belongs_to :parent, :class_name => 'ModuleTag', :inverse_of => :children
has_many :children, :class_name => 'ModuleTag', :inverse_of => :parent, autosave: true, dependent: :destroy
validates :name, :at_least_one => true
before_save :init_update_tag
before_destroy :destroy_tag
after_save :update_children
private
def destroy_tag
Tag.without_callback(:destroy, :before, :destroy_module_tag) do
self.tag.destroy
end
end
def init_update_tag
if self.new_record?
self.build_tag(name_translations: self.name_translations, is_default: self.is_default)
else
self.tag.name_translations = self.name_translations
self.tag.is_default = self.is_default
end
end
def update_children
unless self.children.blank?
self.children.each do |child|
child.update_attributes(name_translations: self.name_translations)
end
end
end
end
+1
View File
@@ -8,6 +8,7 @@ class ProtoTag
field :key
field :view_count, :type => Integer, :default => 0
#field :cloud_amper,:type: Integer,:default=> 0
field :name
def self.sorted_for_cloud
tags = {}
+14 -25
View File
@@ -11,35 +11,16 @@ class Tag
is_impressionable :counter_cache => { :column_name => :view_count }
field :name, localize: true
field :view_count, :type => Integer, :default => 0
field :cloud_view_count, :type => Integer, :default => 0
field :cloud_view_count, type: Integer, default: 0
field :is_default, type: Boolean, default: false
field :view_count, type: Integer, default: 0
belongs_to :module_tag, polymorphic: true
belongs_to :tag_lease, polymorphic: true
has_many :taggings, dependent: :destroy
#field :cloud_amper,:type: Integer,:default=> 0
validates :name, :at_least_one => true
# def self.sorted_for_cloud
# tags = {}
# self.all.each{ |tag|
# tags.merge!({tag => self.get_impressionist(tag)})
# }
# if !tags.blank?
# sorted_tags = tags.sort{|a,b| a[1]<=>b[1]}.reverse
# sorted_tags[0][1] = :hot1
# offset = (sorted_tags.size - 1) / 3
# i = 1
# class_i = 2
# sorted_tags[1..-1].collect!{ |x|
# x[1] = "hot#{class_i}"
# i == offset ? i = 1 : i += 1 if class_i < 4
# class_i += 1 if i == offset && class_i < 4
# }
# sorted_tags
# else
# []
# end
# end
before_destroy :destroy_module_tag, if: Proc.new { |tag| tag.tag_lease_type.eql?("ModuleTag") }
protected
@@ -47,4 +28,12 @@ class Tag
item_tag.impressions.where(:created_at.gte=> 14.days.ago,:created_at.lte => Time.now).count
end
private
def destroy_module_tag
ModuleTag.without_callback(:destroy, :before, :destroy_tag) do
self.tag_lease.destroy
end
end
end
+2 -2
View File
@@ -10,8 +10,8 @@ class Role < Attribute
field :title, localize: true
has_many :sub_roles, :autosave => true, :dependent => :destroy
has_many :users
# has_many :statuses, :autosave => true, :dependent => :destroy
has_and_belongs_to_many :users
has_many :statuses, :autosave => true, :dependent => :destroy
# has_many :attribute_fields, :autosave => true, :dependent => :destroy
has_many :role_statuses, :autosave => true, :dependent => :destroy
has_many :role_categorys, :autosave => true, :dependent => :destroy
+7 -5
View File
@@ -42,7 +42,6 @@ class User
before_create :initialize_desktop
before_save :rebuild_status_record
before_save :save_roles
scope :remote_account, where(:nccu_id.ne => nil)
scope :not_guest_user, all_of(:name.ne => "guest")
@@ -271,12 +270,15 @@ class User
def initialize_desktop
self.build_desktop(desktop_widget_ids: DesktopWidget.all.collect{|widget| widget.id})
end
def managed_module_apps
self.managing_apps.inject([]) do |managed_apps, app_manager|
managed_apps << app_manager.managing_app unless app_manager.managing_app.blank?
managed_apps
end
end
protected
def save_roles
# self.roles = self.sub_roles.collect{|t| t.role}.uniq
self.roles = self.roles.uniq
end
def rebuild_status_record
self.status_record = {}