module Ask class Engine < ::Rails::Engine initializer "ask" do locales = Site.first.in_use_locales rescue [:en,:zh_tw] begin t_data0 = locales.collect{|l| Dir["#{ENV['PWD']}/config/locales/#{l.to_s}.yml"]}.flatten.map{|yaml_file| YAML.load(File.read(yaml_file))} t_data1 = Dir["#{Ask::Engine.root}/config/locales/*.yml"].map{|yaml_file| YAML.load(File.read(yaml_file))} data_item = {} key_item1 = {} value_item1 = {} value_item2 = {} t_data0.each do |t_data| v = t_data.values k = t_data.keys[0] key_item1[k] = v[0]['theme'] end 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 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 end if defined?(AskListSetting) ask_list_setting = AskListSetting.first if ask_list_setting.nil? ask_list_setting = AskListSetting.create() elsif AskListSetting.count > 1 AskListSetting.where(:category_id=>nil)[1..-1].each do |a| a.destroy end end end if defined?(AskSettingIndex) if AskSettingIndex.first.nil? AskSettingIndex.create() elsif AskSettingIndex.count > 1 AskSettingIndex.all[1..-1].each do |ask_setting_index| ask_setting_index.destroy end end end rescue => e puts ['AskSetting not found',e] end 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 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 head_label_i18n 'ask.ask', icon_class: "icon-lightbulb" available_for "users" active_for_controllers (['admin/asks']) head_link_path "admin_asks_path" context_link 'ask.all_tickets', :link_path=>"admin_asks_path" , :priority=>1, :active_for_action=>{'admin/asks'=>'index'}, :available_for => 'users' # 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/ask'=>'tags'}, # :active_for_tag => 'Ask', # :available_for => 'managers' context_link 'ask.setting', :link_path=>"setting_admin_asks_path" , :priority=>2, :active_for_action=>{'admin/asks'=>'setting'}, :available_for => 'managers' context_link 'ask.category_setting', :link_path=>"category_setting_admin_asks_path" , :priority=>3, :active_for_action=>{'admin/asks'=>'category_setting'}, :available_for => 'sub_managers' context_link 'ask.order_fields', :link_path=>"order_fields_admin_asks_path" , :priority=>4, :active_for_action=>{'admin/asks'=>'order_fields'}, :available_for => 'sub_managers' context_link 'ask.print_setting', :link_path=>"print_setting_admin_asks_path" , :priority=>5, :active_for_action=>{'admin/asks'=>'print_setting'}, :available_for => 'sub_managers' context_link 'ask.ticket_status', :link_path=>"ticket_status_admin_asks_path" , :priority=>6, :active_for_action=>{'admin/asks'=>'ticket_status'}, :available_for => 'managers' context_link 'categories', :link_path=>"admin_module_app_categories_path" , :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'ask').id}", :priority=>7, :active_for_action=>{'admin/asks'=>'categories'}, :active_for_category => 'Ask', :available_for => 'managers' context_link 'ask.acknowledgements', :link_path=>"admin_ask_acknowledgements_path" , :priority=>8, :active_for_action=>{'admin/asks'=>'acknowledgements'}, :available_for => 'managers' context_link 'ask.admins', :link_path=>"admin_ask_admins_path" , :priority=>9, :active_for_action=>{'admin/asks'=>'admins'}, :available_for => 'managers' context_link 'ask.exports', :link_path=>"export_admin_asks_path" , :priority=>10, :active_for_action=>{'admin/asks'=>'exports'}, :available_for => 'managers' # context_link 'new_', # :link_path=>"new_admin_ask_path" , # :priority=>2, # :active_for_action=>{'admin/asks'=>'new'}, # :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 end end end end