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:
commit
3d573680b2
1006 files changed
+5883
-12004
No files matched your search
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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!
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user