Prepare to support ruby 3.3.
This commit is contained in:
parent
7f1bf3be49
commit
e8f9eaa722
|
@ -1,218 +1,220 @@
|
||||||
module Ask
|
module Ask
|
||||||
class Engine < ::Rails::Engine
|
class Engine < ::Rails::Engine
|
||||||
initializer "ask" do
|
initializer "ask" do
|
||||||
locales = Site.first.in_use_locales rescue [:en,:zh_tw]
|
Rails.application.config.to_prepare do
|
||||||
begin
|
locales = Site.first.in_use_locales rescue [:en,:zh_tw]
|
||||||
t_data0 = locales.collect{|l| Dir["#{ENV['PWD']}/config/locales/#{l.to_s}.yml"]}.flatten.map{|yaml_file| YAML.load(File.read(yaml_file))}
|
begin
|
||||||
t_data1 = Dir["#{Ask::Engine.root}/config/locales/*.yml"].map{|yaml_file| YAML.load(File.read(yaml_file))}
|
t_data0 = locales.collect{|l| Dir["#{ENV['PWD']}/config/locales/#{l.to_s}.yml"]}.flatten.map{|yaml_file| YAML.load(File.read(yaml_file))}
|
||||||
data_item = {}
|
t_data1 = Dir["#{Ask::Engine.root}/config/locales/*.yml"].map{|yaml_file| YAML.load(File.read(yaml_file))}
|
||||||
key_item1 = {}
|
data_item = {}
|
||||||
value_item1 = {}
|
key_item1 = {}
|
||||||
value_item2 = {}
|
value_item1 = {}
|
||||||
t_data0.each do |t_data|
|
value_item2 = {}
|
||||||
v = t_data.values
|
t_data0.each do |t_data|
|
||||||
k = t_data.keys[0]
|
v = t_data.values
|
||||||
key_item1[k] = v[0]['theme']
|
k = t_data.keys[0]
|
||||||
end
|
key_item1[k] = v[0]['theme']
|
||||||
t_data1.each do |t_data|
|
|
||||||
v = t_data.values
|
|
||||||
k = t_data.keys[0]
|
|
||||||
value_item1[k] = v[0]['ask']['widget']['index']
|
|
||||||
value_item2[k] = v[0]['ask']['is_published']
|
|
||||||
end
|
|
||||||
data_item[key_item1] = [value_item1,value_item2]
|
|
||||||
rescue => e
|
|
||||||
puts ['error in ask',e]
|
|
||||||
end
|
|
||||||
begin
|
|
||||||
require File.expand_path('../../../app/models/ask_setting', __FILE__)
|
|
||||||
require File.expand_path('../../../app/models/ask_list_setting', __FILE__)
|
|
||||||
require File.expand_path('../../../app/models/ask_category_setting', __FILE__)
|
|
||||||
require File.expand_path('../../../app/models/ask_setting_index', __FILE__)
|
|
||||||
if defined?(AskSetting)
|
|
||||||
ask_setting = AskSetting.first
|
|
||||||
if ask_setting.nil?
|
|
||||||
ask_setting = AskSetting.create()
|
|
||||||
elsif AskSetting.count > 1
|
|
||||||
AskSetting.all[1..-1].each do |a|
|
|
||||||
a.destroy
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
if ask_setting.email_regex_enable
|
t_data1.each do |t_data|
|
||||||
AskCategorySetting.all.update_all(email_regex_enable: ask_setting.email_regex_enable,email_regex: ask_setting.email_regex)
|
v = t_data.values
|
||||||
|
k = t_data.keys[0]
|
||||||
|
value_item1[k] = v[0]['ask']['widget']['index']
|
||||||
|
value_item2[k] = v[0]['ask']['is_published']
|
||||||
end
|
end
|
||||||
AskCategorySetting.all.each do |ask_category_setting|
|
data_item[key_item1] = [value_item1,value_item2]
|
||||||
sort_number = ask_category_setting.sort_number
|
rescue => e
|
||||||
have_custom_key = false
|
puts ['error in ask',e]
|
||||||
sort_number.keys.each do |sort_number_key|
|
end
|
||||||
have_default_key ||= sort_number_key.include?("default@default@")
|
begin
|
||||||
have_custom_key ||= sort_number_key.include?("custom@")
|
require File.join(Ask::Engine.root, 'app/models/ask_setting')
|
||||||
end
|
require File.join(Ask::Engine.root, 'app/models/ask_list_setting')
|
||||||
if !have_custom_key
|
require File.join(Ask::Engine.root, 'app/models/ask_category_setting')
|
||||||
new_sort_number = {}
|
require File.join(Ask::Engine.root, 'app/models/ask_setting_index')
|
||||||
sort_number.keys.each do |sort_number_key|
|
if defined?(AskSetting)
|
||||||
new_sort_number_key = sort_number_key
|
ask_setting = AskSetting.first
|
||||||
if sort_number_key.include?("default@default@")
|
if ask_setting.nil?
|
||||||
new_sort_number_key = sort_number_key.sub(/default@/, '')
|
ask_setting = AskSetting.create()
|
||||||
else
|
elsif AskSetting.count > 1
|
||||||
new_sort_number_key = sort_number_key.sub(/default@/, "custom@#{ask_category_setting.id}@")
|
AskSetting.all[1..-1].each do |a|
|
||||||
end
|
a.destroy
|
||||||
new_sort_number[new_sort_number_key] = sort_number[sort_number_key]
|
end
|
||||||
|
end
|
||||||
|
if ask_setting.email_regex_enable
|
||||||
|
AskCategorySetting.all.update_all(email_regex_enable: ask_setting.email_regex_enable,email_regex: ask_setting.email_regex)
|
||||||
|
end
|
||||||
|
AskCategorySetting.all.each do |ask_category_setting|
|
||||||
|
sort_number = ask_category_setting.sort_number
|
||||||
|
have_custom_key = false
|
||||||
|
sort_number.keys.each do |sort_number_key|
|
||||||
|
have_default_key ||= sort_number_key.include?("default@default@")
|
||||||
|
have_custom_key ||= sort_number_key.include?("custom@")
|
||||||
|
end
|
||||||
|
if !have_custom_key
|
||||||
|
new_sort_number = {}
|
||||||
|
sort_number.keys.each do |sort_number_key|
|
||||||
|
new_sort_number_key = sort_number_key
|
||||||
|
if sort_number_key.include?("default@default@")
|
||||||
|
new_sort_number_key = sort_number_key.sub(/default@/, '')
|
||||||
|
else
|
||||||
|
new_sort_number_key = sort_number_key.sub(/default@/, "custom@#{ask_category_setting.id}@")
|
||||||
|
end
|
||||||
|
new_sort_number[new_sort_number_key] = sort_number[sort_number_key]
|
||||||
|
end
|
||||||
|
ask_category_setting.sort_number = new_sort_number
|
||||||
|
ask_category_setting.save
|
||||||
end
|
end
|
||||||
ask_category_setting.sort_number = new_sort_number
|
|
||||||
ask_category_setting.save
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
if defined?(AskListSetting)
|
||||||
if defined?(AskListSetting)
|
ask_list_setting = AskListSetting.first
|
||||||
ask_list_setting = AskListSetting.first
|
if ask_list_setting.nil?
|
||||||
if ask_list_setting.nil?
|
ask_list_setting = AskListSetting.create()
|
||||||
ask_list_setting = AskListSetting.create()
|
elsif AskListSetting.count > 1
|
||||||
elsif AskListSetting.count > 1
|
AskListSetting.where(:category_id=>nil)[1..-1].each do |a|
|
||||||
AskListSetting.where(:category_id=>nil)[1..-1].each do |a|
|
a.destroy
|
||||||
a.destroy
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
if defined?(AskSettingIndex)
|
||||||
if defined?(AskSettingIndex)
|
if AskSettingIndex.first.nil?
|
||||||
if AskSettingIndex.first.nil?
|
AskSettingIndex.create()
|
||||||
AskSettingIndex.create()
|
elsif AskSettingIndex.count > 1
|
||||||
elsif AskSettingIndex.count > 1
|
AskSettingIndex.all[1..-1].each do |ask_setting_index|
|
||||||
AskSettingIndex.all[1..-1].each do |ask_setting_index|
|
ask_setting_index.destroy
|
||||||
ask_setting_index.destroy
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
rescue => e
|
|
||||||
puts ['AskSetting not found',e]
|
|
||||||
end
|
|
||||||
require File.expand_path('../../../app/models/ask_question', __FILE__)
|
|
||||||
require File.expand_path('app/models/user_action', Rails.root)
|
|
||||||
def fix_reviewer
|
|
||||||
ask_question_no_reviewer_len = AskQuestion.where(:id.in => UserAction.where(controller: 'admin/asks', action: 'update').pluck(:request_path).map{|v| v.split('/')[-1]}, :reviewer_id => nil).count
|
|
||||||
if ask_question_no_reviewer_len==0
|
|
||||||
return
|
|
||||||
end
|
|
||||||
UserAction.where(controller: 'admin/asks', action: 'update').each do |user_action|
|
|
||||||
user = user_action.user
|
|
||||||
askquestion_id = user_action.request_path.split('/')[-1]
|
|
||||||
askquestion = AskQuestion.where(id: askquestion_id).first
|
|
||||||
if askquestion && user.member_profile_id
|
|
||||||
askquestion.update_attributes(reviewer_id: user.member_profile_id, review_time: user_action.created_at)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if defined?(AskListSetting)
|
|
||||||
AskListSetting.each do |ask_list_setting|
|
|
||||||
if ask_list_setting.default_fields.length != AskListSetting::DefaultEnabled.length
|
|
||||||
ask_list_setting.default_fields += ['reviewer', 'review_time']
|
|
||||||
ask_list_setting.save
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
fix_reviewer
|
|
||||||
OrbitApp.registration "Ask", :type => "ModuleApp" do
|
|
||||||
module_label "ask.ask"
|
|
||||||
base_url File.expand_path File.dirname(__FILE__)
|
|
||||||
begin
|
|
||||||
set_keyword_contstraints ['/asks']
|
|
||||||
rescue => e
|
rescue => e
|
||||||
puts ['the site is too old']
|
puts ['AskSetting not found',e]
|
||||||
end
|
end
|
||||||
widget_methods ["widget"]
|
require File.join(Ask::Engine.root, 'app/models/ask_question')
|
||||||
widget_settings [{"data_count"=>10}]
|
require File.expand_path('app/models/user_action', Rails.root)
|
||||||
# taggable "AskQuestion"
|
def fix_reviewer
|
||||||
begin
|
ask_question_no_reviewer_len = AskQuestion.where(:id.in => UserAction.where(controller: 'admin/asks', action: 'update').pluck(:request_path).map{|v| v.split('/')[-1]}, :reviewer_id => nil).count
|
||||||
show_option_items data_item
|
if ask_question_no_reviewer_len==0
|
||||||
rescue => e
|
return
|
||||||
puts ['there_was_no_show_option_method',e]
|
end
|
||||||
|
UserAction.where(controller: 'admin/asks', action: 'update').each do |user_action|
|
||||||
|
user = user_action.user
|
||||||
|
askquestion_id = user_action.request_path.split('/')[-1]
|
||||||
|
askquestion = AskQuestion.where(id: askquestion_id).first
|
||||||
|
if askquestion && user.member_profile_id
|
||||||
|
askquestion.update_attributes(reviewer_id: user.member_profile_id, review_time: user_action.created_at)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if defined?(AskListSetting)
|
||||||
|
AskListSetting.each do |ask_list_setting|
|
||||||
|
if ask_list_setting.default_fields.length != AskListSetting::DefaultEnabled.length
|
||||||
|
ask_list_setting.default_fields += ['reviewer', 'review_time']
|
||||||
|
ask_list_setting.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
categorizable
|
fix_reviewer
|
||||||
authorizable
|
OrbitApp.registration "Ask", :type => "ModuleApp" do
|
||||||
frontend_enabled
|
module_label "ask.ask"
|
||||||
# data_count 1..10
|
base_url File.expand_path File.dirname(__FILE__)
|
||||||
|
begin
|
||||||
|
set_keyword_contstraints ['/asks']
|
||||||
|
rescue => e
|
||||||
|
puts ['the site is too old']
|
||||||
|
end
|
||||||
|
widget_methods ["widget"]
|
||||||
|
widget_settings [{"data_count"=>10}]
|
||||||
|
# taggable "AskQuestion"
|
||||||
|
begin
|
||||||
|
show_option_items data_item
|
||||||
|
rescue => e
|
||||||
|
puts ['there_was_no_show_option_method',e]
|
||||||
|
end
|
||||||
|
categorizable
|
||||||
|
authorizable
|
||||||
|
frontend_enabled
|
||||||
|
# data_count 1..10
|
||||||
|
|
||||||
side_bar do
|
side_bar do
|
||||||
head_label_i18n 'ask.ask', icon_class: "icon-lightbulb"
|
head_label_i18n 'ask.ask', icon_class: "icon-lightbulb"
|
||||||
available_for "users"
|
available_for "users"
|
||||||
active_for_controllers (['admin/asks'])
|
active_for_controllers (['admin/asks'])
|
||||||
head_link_path "admin_asks_path"
|
head_link_path "admin_asks_path"
|
||||||
|
|
||||||
context_link 'ask.all_tickets',
|
context_link 'ask.all_tickets',
|
||||||
:link_path=>"admin_asks_path" ,
|
:link_path=>"admin_asks_path" ,
|
||||||
:priority=>1,
|
:priority=>1,
|
||||||
:active_for_action=>{'admin/asks'=>'index'},
|
:active_for_action=>{'admin/asks'=>'index'},
|
||||||
:available_for => 'users'
|
:available_for => 'users'
|
||||||
# context_link 'tags',
|
# context_link 'tags',
|
||||||
# :link_path=>"admin_module_app_tags_path" ,
|
# :link_path=>"admin_module_app_tags_path" ,
|
||||||
# :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'ask').id}",
|
# :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'ask').id}",
|
||||||
# :priority=>4,
|
# :priority=>4,
|
||||||
# :active_for_action=>{'admin/ask'=>'tags'},
|
# :active_for_action=>{'admin/ask'=>'tags'},
|
||||||
# :active_for_tag => 'Ask',
|
# :active_for_tag => 'Ask',
|
||||||
# :available_for => 'managers'
|
# :available_for => 'managers'
|
||||||
context_link 'ask.setting',
|
context_link 'ask.setting',
|
||||||
:link_path=>"setting_admin_asks_path" ,
|
:link_path=>"setting_admin_asks_path" ,
|
||||||
:priority=>2,
|
:priority=>2,
|
||||||
:active_for_action=>{'admin/asks'=>'setting'},
|
:active_for_action=>{'admin/asks'=>'setting'},
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
context_link 'ask.category_setting',
|
context_link 'ask.category_setting',
|
||||||
:link_path=>"category_setting_admin_asks_path" ,
|
:link_path=>"category_setting_admin_asks_path" ,
|
||||||
:priority=>3,
|
:priority=>3,
|
||||||
:active_for_action=>{'admin/asks'=>'category_setting'},
|
:active_for_action=>{'admin/asks'=>'category_setting'},
|
||||||
:available_for => 'sub_managers'
|
:available_for => 'sub_managers'
|
||||||
context_link 'ask.order_fields',
|
context_link 'ask.order_fields',
|
||||||
:link_path=>"order_fields_admin_asks_path" ,
|
:link_path=>"order_fields_admin_asks_path" ,
|
||||||
:priority=>4,
|
:priority=>4,
|
||||||
:active_for_action=>{'admin/asks'=>'order_fields'},
|
:active_for_action=>{'admin/asks'=>'order_fields'},
|
||||||
:available_for => 'sub_managers'
|
:available_for => 'sub_managers'
|
||||||
context_link 'ask.print_setting',
|
context_link 'ask.print_setting',
|
||||||
:link_path=>"print_setting_admin_asks_path" ,
|
:link_path=>"print_setting_admin_asks_path" ,
|
||||||
:priority=>5,
|
:priority=>5,
|
||||||
:active_for_action=>{'admin/asks'=>'print_setting'},
|
:active_for_action=>{'admin/asks'=>'print_setting'},
|
||||||
:available_for => 'sub_managers'
|
:available_for => 'sub_managers'
|
||||||
context_link 'ask.ticket_status',
|
context_link 'ask.ticket_status',
|
||||||
:link_path=>"ticket_status_admin_asks_path" ,
|
:link_path=>"ticket_status_admin_asks_path" ,
|
||||||
:priority=>6,
|
:priority=>6,
|
||||||
:active_for_action=>{'admin/asks'=>'ticket_status'},
|
:active_for_action=>{'admin/asks'=>'ticket_status'},
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
context_link 'categories',
|
context_link 'categories',
|
||||||
:link_path=>"admin_module_app_categories_path" ,
|
:link_path=>"admin_module_app_categories_path" ,
|
||||||
:link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'ask').id}",
|
:link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'ask').id}",
|
||||||
:priority=>7,
|
:priority=>7,
|
||||||
:active_for_action=>{'admin/asks'=>'categories'},
|
:active_for_action=>{'admin/asks'=>'categories'},
|
||||||
:active_for_category => 'Ask',
|
:active_for_category => 'Ask',
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
context_link 'ask.acknowledgements',
|
context_link 'ask.acknowledgements',
|
||||||
:link_path=>"admin_ask_acknowledgements_path" ,
|
:link_path=>"admin_ask_acknowledgements_path" ,
|
||||||
:priority=>8,
|
:priority=>8,
|
||||||
:active_for_action=>{'admin/asks'=>'acknowledgements'},
|
:active_for_action=>{'admin/asks'=>'acknowledgements'},
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
context_link 'ask.admins',
|
context_link 'ask.admins',
|
||||||
:link_path=>"admin_ask_admins_path" ,
|
:link_path=>"admin_ask_admins_path" ,
|
||||||
:priority=>9,
|
:priority=>9,
|
||||||
:active_for_action=>{'admin/asks'=>'admins'},
|
:active_for_action=>{'admin/asks'=>'admins'},
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
context_link 'ask.exports',
|
context_link 'ask.exports',
|
||||||
:link_path=>"export_admin_asks_path" ,
|
:link_path=>"export_admin_asks_path" ,
|
||||||
:priority=>10,
|
:priority=>10,
|
||||||
:active_for_action=>{'admin/asks'=>'exports'},
|
:active_for_action=>{'admin/asks'=>'exports'},
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
|
|
||||||
# context_link 'new_',
|
# context_link 'new_',
|
||||||
# :link_path=>"new_admin_ask_path" ,
|
# :link_path=>"new_admin_ask_path" ,
|
||||||
# :priority=>2,
|
# :priority=>2,
|
||||||
# :active_for_action=>{'admin/asks'=>'new'},
|
# :active_for_action=>{'admin/asks'=>'new'},
|
||||||
# :available_for => 'sub_managers'
|
# :available_for => 'sub_managers'
|
||||||
|
|
||||||
|
# context_link 'tags',
|
||||||
|
# :link_path=>"admin_module_app_tags_path" ,
|
||||||
|
# :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'ask').id}",
|
||||||
|
# :priority=>4,
|
||||||
|
# :active_for_action=>{'admin/asks'=>'tags'},
|
||||||
|
# :active_for_tag => 'Ask',
|
||||||
|
# :available_for => 'managers'
|
||||||
|
end
|
||||||
|
|
||||||
# context_link 'tags',
|
|
||||||
# :link_path=>"admin_module_app_tags_path" ,
|
|
||||||
# :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'ask').id}",
|
|
||||||
# :priority=>4,
|
|
||||||
# :active_for_action=>{'admin/asks'=>'tags'},
|
|
||||||
# :active_for_tag => 'Ask',
|
|
||||||
# :available_for => 'managers'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue