Merge commit '6b248a949b44b6e4dc908f29f4f08c3a821210cd' into sidebar_config

Conflicts:
	app/models/user/attribute_value.rb
	app/views/layouts/_side_bar_content.html.erb
	vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb
This commit is contained in:
Matthew K. Fu JuYuan committed 2012-11-26 17:55:53 +08:00
commit 3d573680b2
1006 files changed
+5883 -12004

No files matched your search

+1 -20
View File
@@ -3,23 +3,4 @@ class Desktopapp::DesktopAppPublications < Sinatra::Base
get "/desktop/journal_p" do
erb :journal_p
end
get "/desktop/journal_p_list" do
erb :'journal_pages/list'
end
get '/desktop/journal_p_add' do
erb :'journal_pages/add'
end
get '/desktop_publications/getjournals' do
@journals = Journal.all
data = Array.new
@journals.each do |journal|
@papers = journal.papers.all
data << {"title" => journal.title, "papers" => @papers}
end
data.to_json
end
end
end
+1 -1
View File
@@ -15,7 +15,7 @@ module OrbitControllerLib
instance_variable_set(ivar_name, [])
if(is_manager? || is_admin?)
instance_variable_set(ivar_name, (id ? class_ref.admin_manager_all.find(id).to_a : class_ref.admin_manager_all))
elsif is_sub_manager?
else #is_sub_manager?
instance_variable_set(ivar_name, (class_ref.all))
end
instance_variable_get(ivar_name)
+41 -10
View File
@@ -54,7 +54,7 @@ module ParserCommon
delay: -1000,
fx: '#{ad_banner.ad_fx.nil? ? 'fade': ad_banner.ad_fx}',
timeoutFn: getTimeout,
pager: '#banner_nav',
pager: '.banner_nav-#{ad_banner.title.dehumanize}',
pagerAnchorBuilder: function(idx, slide) {
return \"<li><a href='#'></a></li>\";
}
@@ -62,7 +62,8 @@ module ParserCommon
};
});
</script>"
res << "<ul id='banner_nav' class='clear'></ul>"
res << "<div style='position:relative'>"
res << "<ul id='banner_nav' class='clear banner_nav-#{ad_banner.title.dehumanize}'></ul>"
res << "<div id='slideshow-#{ad_banner.title.dehumanize}' class='slideshow'>"
printable_ad_images = []
ad_banner.ad_images.each do |ad_image|
@@ -84,6 +85,7 @@ module ParserCommon
res << "style='#{'display:none;' if hide} #{'cursor:pointer;' if !ad_image.out_link.blank?}'"
res << "/>"
end
res << "</div>"
res << "</div>"
end
fragment = Nokogiri::HTML::DocumentFragment.new(body, res)
@@ -112,10 +114,14 @@ module ParserCommon
# page_menu
def parse_menu(body, page, edit=nil)
page_menu = body.css('.page_menu').first
home = get_homepage
menu = page.design.layout.menu
fragment = Nokogiri::HTML::DocumentFragment.new(body, menu_level(home, page, 1, menu, edit))
page_menu.swap(fragment)
if page_menu
home = get_homepage
menu = page.design.layout.menu
fragment = Nokogiri::HTML::DocumentFragment.new(body, menu_level(home, page, 1, menu, edit))
page_menu.swap(fragment)
else
''
end
end
# sub_menus
@@ -173,10 +179,14 @@ module ParserCommon
# sitemap
def parse_sitemaps(body = nil, page = nil, edit=nil)
sitemap = body.css('sitemap').first
url = admin_site_sitemap_frontend_path(@site)
options = "?inner=true"
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load' path='#{url + options}'></div>")
sitemap.swap(fragment)
if sitemap
url = admin_site_sitemap_frontend_path(@site)
options = "?inner=true"
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load' path='#{url + options}'></div>")
sitemap.swap(fragment)
else
''
end
end
# page_contents
@@ -226,4 +236,25 @@ module ParserCommon
public_r_tags.uniq
end
# page_counter
def parse_counter(body = nil, page = nil, edit=nil)
body.css('.page_counter').each do |counter|
res = ''
case counter['option']
when 'all'
res << display_visitors.to_s
when 'today'
res << display_visitors_today.to_s
when 'this_week'
res << display_visitors_this_week.to_s
when 'this_month'
res << display_visitors_this_month.to_s
when 'this_year'
res << display_visitors_this_year.to_s
end
fragment = Nokogiri::HTML::DocumentFragment.new(body, res)
counter.swap(fragment)
end
end
end
+21 -5
View File
@@ -2,7 +2,26 @@
require 'resque_scheduler/tasks'
namespace :data_migration do
task :migrate_user_infos_from_1121 => :environment do
AttributeField.all.each do |af|
if af.has_attribute?('locale')
af.title_translations = case af[:locale]
when true
af[:locale_title]
when false
{af[:neutral_for] => af[:neutral_title]}
end
af.unset("locale")
af.unset("locale_title")
af.unset("neutral_for")
af.unset("neutral_title")
af.save
end
end
end
task :add_order_to_announcement_tag_0703 => :environment do
AnnouncementTag.first({conditions:{ key: 'students' }}).update_attributes(:order=>1)
AnnouncementTag.first({conditions:{ key: 'alumni' }}).update_attributes(:order=>2)
@@ -19,10 +38,7 @@ namespace :data_migration do
NewsBulletinCategory.all.each{|bc| bc.disable=false;bc.save!}
end
task :add_search_widget_to_news_and_announcement => :environment do
app = ModuleApp.first({:conditions=>{:title => 'news'}})
app.widgets << "news_bulletins_search_block" if !app.widgets.include?("news_bulletins_search_block")
app.save!
task :add_search_widget_to_announcement => :environment do
app = ModuleApp.first({:conditions=>{:title => 'Announcement'}})
app.widgets << "bulletins_search_block" if !app.widgets.include?("bulletins_search_block")
app.save!
+13
View File
@@ -0,0 +1,13 @@
# encoding: utf-8
namespace :desktop do
task :destroy_build_desktop => :environment do
Desktop.all.destroy_all
u = User.all
u.each do |us|
x = us.initialize_desktop
x.save!
puts "Desktop created for " + us.email.to_s
end
end
end
-170
View File
@@ -1,170 +0,0 @@
# encoding: utf-8
# require 'ruby-debug'
require "#{Rails.root}/config/initializers/middle_site_connection"
namespace :mid_site do
desc "mid_site Rake task"
attr_from_mid = %w{nccu_id psn_nam ut_cod up_ut_cod eml_adr off_tel_ext sta_num}
officer_posgrp_code = %w{02 06 10 05} #from RSS2
admin_role = nil
sub_role = nil
test_account_ldap_id ='139716'
MiddleSiteConnection.establish
task :sync => :environment do
info_profile = Info.first(conditions: {:key => 'profile'})
def find_or_create_sub_role(role,ut_query=[],key='')
sub_role = role.sub_roles.get_sub_role_from_key(key)
if sub_role.nil?
ut_data = ut_query.find{|ut_data| ut_data["ut_cod"] == key }
sub_role = role.sub_roles.create!(:key => key)
sub_role.title_translations ={"en" => (ut_data["ut_eng_m"] rescue ''), "zh_tw" => (ut_data["ut_chi_m"] rescue '')}
sub_role.save!
p "Created SubRole(key: #{key}): EN: #{sub_role.title_translations['en']}, CH: #{sub_role.title_translations['zh_tw']} ParentRole(#{role.key}): #{role.title_translations['en']}"
end
sub_role
end
users_from_mid = $mid_site_connection.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')})")
ut_data_from_mid = $mid_site_connection.query("SELECT ut_odr, ut_cod, up_ut_cod, ut_chi_m, ut_eng_m FROM rss_paunit WHERE ut_tpe = '1' AND ut_grp != '3' AND up_ut_cod != 'F00' ORDER BY ut_odr, ut_cod")
remote_list = users_from_mid.collect{|t| t["nccu_id"]}
#remove delete user sho has been deleted at remote first
local_need_remove = User.all.collect{|t| t.nccu_id rescue nil}.uniq.delete_if {|x| x == nil} - remote_list
desc "Going to delete User with IDs: #{local_need_remove.inspect}"
local_need_remove = User.excludes(nccu_ldap_uid: test_account_ldap_id ).collect{|t| t.nccu_ldap_uid rescue nil}.uniq.delete_if {|x| x == nil} - remote_list
AppManager.all.collect{|am| am if am.user.nil? }.delete_if {|x| x == nil}.each{|am| am.destroy}
desc "Deletion completed! \n"
#starting update user
desc "Updating and Newing Users"
users_from_mid.each do |mid_user|
ut_item = ut_data_from_mid.find{|ut_data| ut_data["ut_cod"] == mid_user["ut_cod"]}
up_ut_item = ut_data_from_mid.find{|ut_data| ut_data["ut_cod"] == mid_user["up_ut_cod"] }
local_user = User.find_or_initialize_by(:nccu_ldap_uid => mid_user["nccu_id"])
users_name_from_mid = $mid_site_connection.query("SELECT eng_nam_l,eng_nam_f,chi_nam_l,chi_nam_f FROM rss_zzperson_view WHERE nccu_id =#{mid_user["nccu_id"]}").first
first_name = AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name')
last_name = AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name')
first_name['en'] = users_name_from_mid["eng_nam_f"]
first_name['zh_tw'] = users_name_from_mid["chi_nam_f"]
first_name.save
last_name['en'] = users_name_from_mid["eng_nam_l"]
last_name['zh_tw'] = users_name_from_mid["chi_nam_l"]
last_name.save
user_model_mapper = Hash[:ut_cod => mid_user["ut_cod"] ,:up_ut_cod => mid_user["up_ut_cod"],:email => mid_user["eml_adr"],:off_tel_ext => mid_user["off_tel_ext"],:sta_num => mid_user["sta_num"]]
user_model_mapper[:admin] = false
local_user.update_attributes(user_model_mapper)
local_user.role = Role.find_or_create_by( :key => "department_admin",:build_in => true)
local_user.role.title_translations = {"en" => 'Department Admin', "zh_tw" => '系所使用者' }
unless local_user.ut_cod == local_user.up_ut_cod #if the ut_cod has additions info for up ut
local_user.sub_roles << find_or_create_sub_role(local_user.role,ut_data_from_mid,local_user.up_ut_cod)
end
local_user.sub_roles << find_or_create_sub_role(local_user.role,ut_data_from_mid,local_user.ut_cod)
local_user.save!
end
sys_users = User.all(conditions: {admin: false}).includes(:avatar).to_a
end
task :install_admin => :before_instll_admin do
admins_nccu_id = '2772'
info_profile = Info.first(conditions: {:key => 'profile'})
user_from_mid = $mid_site_connection.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')}) AND nccu_id = '#{admins_nccu_id}' limit 1")
admin_at_mid = user_from_mid.first
local_user = User.find_or_initialize_by(:nccu_ldap_uid => admin_at_mid["nccu_id"])
local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id])
users_name_from_mid = $mid_site_connection.query("SELECT eng_nam_l,eng_nam_f,chi_nam_l,chi_nam_f FROM rss_zzperson_view WHERE nccu_id =#{admin_at_mid["nccu_id"]}").first
first_name = AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name')
last_name = AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name')
first_name['en'] = users_name_from_mid["eng_nam_f"]
first_name['zh_tw'] = users_name_from_mid["chi_nam_f"]
first_name.save
last_name['en'] = users_name_from_mid["eng_nam_l"]
last_name['zh_tw'] = users_name_from_mid["chi_nam_l"]
last_name.save
end
task :install_test => :before_instll_admin do
admins_nccu_id = '139716'
# admin_role = Role.find_or_create_by( key: 'administrator')
# sub_role = admin_role.sub_roles.find_or_create_by(:key => 'computer_center')
info_profile = Info.first(conditions: {:key => 'profile'})
user_from_mid = $mid_site_connection.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE nccu_id = '#{admins_nccu_id}' limit 1")
admin_at_mid = user_from_mid.first
user_first_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][3..-1] : admin_at_mid["psn_nam"][1..-1]
user_last_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][1..2] : admin_at_mid["psn_nam"][0]
local_user = User.find_or_initialize_by(:nccu_ldap_uid => admin_at_mid["nccu_id"])
local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id])
AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name', :en => user_first_name, :zh_tw => user_first_name )
AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name', :en => user_last_name, :zh_tw => user_last_name )
end
task :before_instll_admin => :environment do
var_1 = {"en" => 'Administrator', "zh_tw" => '管理員' }
var_1_1 = {"en" => 'Computer Center', "zh_tw" => '計算機中心'}
admin_role = Role.find_or_create_by( :key => 'administrator',:built_in => true)
admin_role.title_translations =var_1
admin_role.save!
sub_role = admin_role.sub_roles.find_or_create_by(:key => 'computer_center', :built_in => true)
sub_role.title_translations =var_1_1
sub_role.save!
#var_1_1_1 = I18nVariable.create!( :document_class => 'Attribute', :key => 'field', :en => 'Field', :zh_tw => '領域', :parent_id => var_1_1.id )
#var_1_1_2 = I18nVariable.create!( :document_class => 'Attribute', :key => 'department', :en => 'Department', :zh_tw => '學系', :parent_id => var_1_1.id )
end
task :clean_local_account => :environment do
User.remote_account.each{|user| user.destroy}
end
task :claen_cc => [:clean_i18n_vars,:clean_admin_role_and_sub_role] do
end
task :clean_i18n_vars => :environment do
i18ns = I18nVariable.any_in( key: ['administrator','computer_center'])
i18ns.each { |var| var.destroy }
end
task :clean_ldap_users => :environment do
User.where(:nccu_ldap_uid.ne => nil ).each {|t| t.destroy}
end
task :clean_admin_role_and_sub_role => :environment do
data = Role.any_in( key: ['administrator','computer_center'])
data.each { |var| var.destroy }
data = SubRole.any_in( key: ['administrator','computer_center'])
data.each { |var| var.destroy }
end
end
-63
View File
@@ -81,69 +81,6 @@ namespace :migrate do
p '====================================================='
p '====================================================='
p 'Start NewsBulletin'
news_bulletins = NewsBulletin.admin_manager_all
i = 1
news_bulletins.each do |news_bulletin|
p "#{i}/#{news_bulletins.size} - #{news_bulletin.id}"
title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => news_bulletin.id, :language_value_type => news_bulletin.class})
news_bulletin.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
subtitle = I18nVariable.first(:conditions => {:key => 'subtitle', :language_value_id => news_bulletin.id, :language_value_type => news_bulletin.class})
news_bulletin.subtitle_translations = {'en' => subtitle['en'], 'zh_tw' => subtitle['zh_tw']} if subtitle
text = I18nVariable.first(:conditions => {:key => 'text', :language_value_id => news_bulletin.id, :language_value_type => news_bulletin.class})
news_bulletin.text_translations = {'en' => text['en'], 'zh_tw' => text['zh_tw']} if text
p news_bulletin.save(:validate => false)
i += 1
end
p 'End NewsBulletin'
p '====================================================='
p 'Start NewsBulletinCategory'
categories = NewsBulletinCategory.admin_manager_all
i = 1
categories.each do |category|
p "#{i}/#{categories.size} - #{category.id}"
title = I18nVariable.first(:conditions => {:language_value_id => category.id, :language_value_type => category.class})
category.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
p category.save(:validate => false)
i += 1
end
p 'End NewsBulletinCategory'
p '====================================================='
p 'Start NewsBulletinFile'
files = NewsBulletinFile.all
i = 1
files.each do |file|
p "#{i}/#{files.size} - #{file.id}"
description = I18nVariable.first(:conditions => {:language_value_id => file.id, :language_value_type => file.class})
file.description_translations = {'en' => description['en'], 'zh_tw' => description['zh_tw']} if description
title = I18nVariable.first(:conditions => {:language_value_id => file.id, :language_value_type => file.class})
file.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
p file.save(:validate => false)
i += 1
end
p 'End NewsBulletinFile'
p '====================================================='
p 'Start NewsBulletinLink'
links = NewsBulletinLink.all
i = 1
links.each do |link|
p "#{i}/#{links.size} - #{link.id}"
title = I18nVariable.first(:conditions => {:language_value_id => link.id, :language_value_type => link.class})
link.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
p link.save(:validate => false)
i += 1
end
p 'End NewsBulletinLink'
p '====================================================='
p '====================================================='
p 'Start PageContext'
page_contexts = PageContext.all
i = 1