From 1ae15033a858cc03987111a473fe1d1cb3be3dd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E5=8D=9A=E4=BA=9E?= Date: Sat, 24 Feb 2024 21:22:36 +0800 Subject: [PATCH 1/4] Prepare to support ruby 3.3. --- .../helpers/custom_announcements_helper.rb | 10 +- .../lib/custom_announcement/engine.rb | 286 +++++++++--------- custom_gallery/lib/custom_gallery/engine.rb | 164 +++++----- lib/seminar/engine.rb | 97 +++--- 4 files changed, 281 insertions(+), 276 deletions(-) diff --git a/custom_announcement/app/helpers/custom_announcements_helper.rb b/custom_announcement/app/helpers/custom_announcements_helper.rb index ec8b8b6..38b393f 100644 --- a/custom_announcement/app/helpers/custom_announcements_helper.rb +++ b/custom_announcement/app/helpers/custom_announcements_helper.rb @@ -320,9 +320,9 @@ module CustomAnnouncementsHelper if @target_action == "index" filename = overridehtml.nil? ? params[:layout_type] : overridehtml f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', 'custom_announcement', "#{filename}.html.erb") - if !File.exists?f + if !File.exist?(f) f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', 'custom_announcement', "index.html.erb") - if !File.exists?f + if !File.exist?(f) return "
Maybe the administrator has changed the theme, please select the index page design again from the page settings.
".html_safe end end @@ -333,7 +333,7 @@ module CustomAnnouncementsHelper begin data = @data# rescue nil rescue Exception => e - write_debug_file(e,'custom_announcements',@target_action) if Site::DEBUG + write_debug_file(e,'custom_announcements',@target_action) if Site::DEBUG end if !data.nil? wrap_elements = doc.css("*[data-list][data-level='0']") @@ -362,7 +362,7 @@ module CustomAnnouncementsHelper else filename = overridehtml.nil? ? @target_action : overridehtml f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', 'custom_announcement', "#{filename}.html.erb") - if File.exists?f + if File.exist?(f) file = File.open(f) doc = Nokogiri::HTML(file, nil, "UTF-8") file.close @@ -464,7 +464,7 @@ module CustomAnnouncementsHelper layout_types = [] @key = Site.first.template f = File.join("#{Rails.root}/app/templates/#{@key}/modules/#{module_app}/info.json") - if File.exists?f + if File.exist?(f) info = File.read(f) hash = JSON.parse(info) rescue {} frontends = hash["frontend"] || [] diff --git a/custom_announcement/lib/custom_announcement/engine.rb b/custom_announcement/lib/custom_announcement/engine.rb index 96751f2..6834254 100644 --- a/custom_announcement/lib/custom_announcement/engine.rb +++ b/custom_announcement/lib/custom_announcement/engine.rb @@ -2,153 +2,155 @@ require "yaml" module CustomAnnouncement class Engine < ::Rails::Engine initializer "custom_announcement" do - begin - translate_data = Dir["#{CustomAnnouncement::Engine.root}/config/locales/*.yml"] .map{|yaml_file| YAML.load(File.read(yaml_file))} - data = {} - key1 = {} - key2 = {} - key3 = {} - key4 = {} - key1_attr = [] - key2_attr = [] - key3_attr = [] - key4_attr = [] - data_item = {} - key_item1 = {} - key_item2 = {} - key_item3 = {} - value_item1 = {} - value_item2 = {} - value_item3 = {} - value2_item1 = {} - value2_item2 = {} - key1_options = ['small_size','medium_size','orignal_size'] - key2_options = ['not_enable_tabs','enable_tabs_with_categories_include_all','enable_tabs_with_categories'] - key3_options = ['default','upper_left','lower_left','upper_right','lower_right'] - key4_options = ['the_same_as_data_count','display_all_in_other_tabs'] - key1_options.each_with_index do |k,i| - key1_attr[i] = {} - end - key2_options.each_with_index do |k,i| - key2_attr[i] = {} - end - key3_options.each_with_index do |k,i| - key3_attr[i] = {} - end - key4_options.each_with_index do |k,i| - key4_attr[i] = {} - end - translate_data.each do |t_data| - v = t_data.values - k = t_data.keys[0] - key1[k] = v[0]['custom_announcement']['picture_showing_size'] - key2[k] = v[0]['custom_announcement']['tabs_options'] - key3[k] = v[0]['custom_announcement']['read_more_position_options'] - key4[k] = v[0]['custom_announcement']['all_tabs_setting'] - key1_options.each_with_index do |kk,i| - key1_attr[i][k] = v[0]['custom_announcement'][kk] - end - key2_options.each_with_index do |kk,i| - key2_attr[i][k] = v[0]['custom_announcement'][kk] - end - key3_options.each_with_index do |kk,i| - key3_attr[i][k] = v[0]['custom_announcement'][kk] - end - key4_options.each_with_index do |kk,i| - key4_attr[i][k] = v[0]['custom_announcement'][kk] - end - key_item1[k] = v[0]['custom_announcement']['showing_back_and_next'] - key_item2[k] = v[0]['custom_announcement']['enable_search'] - value_item1[k] = v[0]['custom_announcement']['not_show'] - value_item2[k] = v[0]['custom_announcement']['show_bottom'] - value_item3[k] = v[0]['custom_announcement']['show_top'] - value2_item1[k] = v[0]['custom_announcement']['no'] - value2_item2[k] = v[0]['custom_announcement']['yes'] - end - data[key1] = key1_attr - data[key2] = key2_attr - data[key3] = key3_attr - data[key4] = key4_attr - data_item[key_item1] = [value_item1,value_item2,value_item3] - data_item[key_item2] = [value2_item1,value2_item2] - require File.expand_path('../../../app/models/custom_anns_cache', __FILE__) - if defined? CustomAnnsCache - CustomAnnsCache.destroy_all - end - rescue => e - puts ['error in custom_announcement',e] - end - OrbitApp.registration "CustomAnnouncement", :type => "ModuleApp" do - module_label "custom_announcement.custom_announcement" - base_url File.expand_path File.dirname(__FILE__) - widget_methods ["widget","random_custom_announcement_widget", "tag_cloud"] - widget_settings [{"data_count"=>30,"enable_custom_widget_data"=>true}] - taggable "CustomBulletin" - categorizable - authorizable - frontend_enabled - feeds_url "/xhr/custom_announcements/feeds" - data_count 1..30 + Rails.application.config.to_prepare do begin - show_options data - show_option_items data_item - rescue => e - puts ['there_was_no_show_option_method',e] + translate_data = Dir["#{CustomAnnouncement::Engine.root}/config/locales/*.yml"] .map{|yaml_file| YAML.load(File.read(yaml_file))} + data = {} + key1 = {} + key2 = {} + key3 = {} + key4 = {} + key1_attr = [] + key2_attr = [] + key3_attr = [] + key4_attr = [] + data_item = {} + key_item1 = {} + key_item2 = {} + key_item3 = {} + value_item1 = {} + value_item2 = {} + value_item3 = {} + value2_item1 = {} + value2_item2 = {} + key1_options = ['small_size','medium_size','orignal_size'] + key2_options = ['not_enable_tabs','enable_tabs_with_categories_include_all','enable_tabs_with_categories'] + key3_options = ['default','upper_left','lower_left','upper_right','lower_right'] + key4_options = ['the_same_as_data_count','display_all_in_other_tabs'] + key1_options.each_with_index do |k,i| + key1_attr[i] = {} + end + key2_options.each_with_index do |k,i| + key2_attr[i] = {} + end + key3_options.each_with_index do |k,i| + key3_attr[i] = {} + end + key4_options.each_with_index do |k,i| + key4_attr[i] = {} + end + translate_data.each do |t_data| + v = t_data.values + k = t_data.keys[0] + key1[k] = v[0]['custom_announcement']['picture_showing_size'] + key2[k] = v[0]['custom_announcement']['tabs_options'] + key3[k] = v[0]['custom_announcement']['read_more_position_options'] + key4[k] = v[0]['custom_announcement']['all_tabs_setting'] + key1_options.each_with_index do |kk,i| + key1_attr[i][k] = v[0]['custom_announcement'][kk] + end + key2_options.each_with_index do |kk,i| + key2_attr[i][k] = v[0]['custom_announcement'][kk] + end + key3_options.each_with_index do |kk,i| + key3_attr[i][k] = v[0]['custom_announcement'][kk] + end + key4_options.each_with_index do |kk,i| + key4_attr[i][k] = v[0]['custom_announcement'][kk] + end + key_item1[k] = v[0]['custom_announcement']['showing_back_and_next'] + key_item2[k] = v[0]['custom_announcement']['enable_search'] + value_item1[k] = v[0]['custom_announcement']['not_show'] + value_item2[k] = v[0]['custom_announcement']['show_bottom'] + value_item3[k] = v[0]['custom_announcement']['show_top'] + value2_item1[k] = v[0]['custom_announcement']['no'] + value2_item2[k] = v[0]['custom_announcement']['yes'] + end + data[key1] = key1_attr + data[key2] = key2_attr + data[key3] = key3_attr + data[key4] = key4_attr + data_item[key_item1] = [value_item1,value_item2,value_item3] + data_item[key_item2] = [value2_item1,value2_item2] + require File.expand_path('../../../app/models/custom_anns_cache', __FILE__) + if defined? CustomAnnsCache + CustomAnnsCache.destroy_all + end + rescue => e + puts ['error in custom_announcement',e] end - side_bar do - set_sidebar_order(100) rescue nil - head_label_i18n 'custom_announcement.custom_announcement', icon_class: "icon-bullhorn" - available_for "users" - active_for_controllers (['admin/custom_announcements']) - head_link_path "admin_custom_announcements_path" + OrbitApp.registration "CustomAnnouncement", :type => "ModuleApp" do + module_label "custom_announcement.custom_announcement" + base_url File.expand_path File.dirname(__FILE__) + widget_methods ["widget","random_custom_announcement_widget", "tag_cloud"] + widget_settings [{"data_count"=>30,"enable_custom_widget_data"=>true}] + taggable "CustomBulletin" + categorizable + authorizable + frontend_enabled + feeds_url "/xhr/custom_announcements/feeds" + data_count 1..30 + begin + show_options data + show_option_items data_item + rescue => e + puts ['there_was_no_show_option_method',e] + end + side_bar do + set_sidebar_order(100) rescue nil + head_label_i18n 'custom_announcement.custom_announcement', icon_class: "icon-bullhorn" + available_for "users" + active_for_controllers (['admin/custom_announcements']) + head_link_path "admin_custom_announcements_path" + + context_link 'custom_announcement.all_articles', + :link_path=>"admin_custom_announcements_path" , + :priority=>1, + :active_for_action=>{'admin/custom_announcements'=>'index'}, + :available_for => 'users' + # context_link 'new_', + # :link_path=>"new_admin_custom_announcement_path" , + # :priority=>2, + # :active_for_action=>{'admin/custom_announcements'=>'new'}, + # :available_for => 'sub_managers' + context_link 'categories', + :link_path=>"admin_module_app_categories_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_announcement').id}", + :priority=>3, + :active_for_action=>{'admin/custom_announcements'=>'categories'}, + :active_for_category => 'CustomAnnouncement', + :available_for => 'managers' + context_link 'tags', + :link_path=>"admin_module_app_tags_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_announcement').id}", + :priority=>4, + :active_for_action=>{'admin/custom_announcements'=>'tags'}, + :active_for_tag => 'CustomAnnouncement', + :available_for => 'managers' + context_link 'custom_announcement.feed_list', + :link_path=>"admin_custom_announcement_feed_path" , + :priority=>5, + :active_for_action=>{'admin/custom_announcements'=>'feed'}, + :available_for => 'managers' + context_link 'custom_announcement.import', + :link_path=>"admin_custom_announcement_import_path" , + :priority=>6, + :active_for_action=>{'admin/custom_announcements'=>'import'}, + :available_for => 'managers' + context_link 'custom_announcement.settings', + :link_path=>"admin_custom_announcement_settings_path" , + :priority=>6, + :active_for_action=>{'admin/custom_announcements'=>'settings'}, + :available_for => 'managers' + end - context_link 'custom_announcement.all_articles', - :link_path=>"admin_custom_announcements_path" , - :priority=>1, - :active_for_action=>{'admin/custom_announcements'=>'index'}, - :available_for => 'users' - # context_link 'new_', - # :link_path=>"new_admin_custom_announcement_path" , - # :priority=>2, - # :active_for_action=>{'admin/custom_announcements'=>'new'}, - # :available_for => 'sub_managers' - context_link 'categories', - :link_path=>"admin_module_app_categories_path" , - :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_announcement').id}", - :priority=>3, - :active_for_action=>{'admin/custom_announcements'=>'categories'}, - :active_for_category => 'CustomAnnouncement', - :available_for => 'managers' - context_link 'tags', - :link_path=>"admin_module_app_tags_path" , - :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_announcement').id}", - :priority=>4, - :active_for_action=>{'admin/custom_announcements'=>'tags'}, - :active_for_tag => 'CustomAnnouncement', - :available_for => 'managers' - context_link 'custom_announcement.feed_list', - :link_path=>"admin_custom_announcement_feed_path" , - :priority=>5, - :active_for_action=>{'admin/custom_announcements'=>'feed'}, - :available_for => 'managers' - context_link 'custom_announcement.import', - :link_path=>"admin_custom_announcement_import_path" , - :priority=>6, - :active_for_action=>{'admin/custom_announcements'=>'import'}, - :available_for => 'managers' - context_link 'custom_announcement.settings', - :link_path=>"admin_custom_announcement_settings_path" , - :priority=>6, - :active_for_action=>{'admin/custom_announcements'=>'settings'}, - :available_for => 'managers' end - + # temp = YAML.load_file(File.join(Rails.root,"config","mongoid.yml")) + # dbsettings = temp["production"]["sessions"]["default"] + # s = Moped::Session.new(dbsettings["hosts"]) + # s.use dbsettings["database"] + # s[:custom_bulletins].indexes.create({expirable_created_at: 1},{ expireAfterSeconds: 180 }) end - # temp = YAML.load_file(File.join(Rails.root,"config","mongoid.yml")) - # dbsettings = temp["production"]["sessions"]["default"] - # s = Moped::Session.new(dbsettings["hosts"]) - # s.use dbsettings["database"] - # s[:custom_bulletins].indexes.create({expirable_created_at: 1},{ expireAfterSeconds: 180 }) end end end \ No newline at end of file diff --git a/custom_gallery/lib/custom_gallery/engine.rb b/custom_gallery/lib/custom_gallery/engine.rb index a214a41..89ef129 100644 --- a/custom_gallery/lib/custom_gallery/engine.rb +++ b/custom_gallery/lib/custom_gallery/engine.rb @@ -1,94 +1,96 @@ module CustomGallery class Engine < ::Rails::Engine initializer "custom_gallery" do - begin - translate_data = Dir["#{CustomGallery::Engine.root}/config/locales/*.yml"] .map{|yaml_file| YAML.load(File.read(yaml_file))} - data = {} - key1 = {} - value1 = {} - value2 = {} - value3 = {} - translate_data.each do |t_data| - v = t_data.values - k = t_data.keys[0] - key1[k] = v[0]['custom_gallery']['inner_page_layout'] - value1[k] = v[0]['custom_gallery']['grid_style'] - value2[k] = v[0]['custom_gallery']['card_style'] - value3[k] = v[0]['custom_gallery']['slideshow_style'] + Rails.application.config.to_prepare do + begin + translate_data = Dir["#{CustomGallery::Engine.root}/config/locales/*.yml"] .map{|yaml_file| YAML.load(File.read(yaml_file))} + data = {} + key1 = {} + value1 = {} + value2 = {} + value3 = {} + translate_data.each do |t_data| + v = t_data.values + k = t_data.keys[0] + key1[k] = v[0]['custom_gallery']['inner_page_layout'] + value1[k] = v[0]['custom_gallery']['grid_style'] + value2[k] = v[0]['custom_gallery']['card_style'] + value3[k] = v[0]['custom_gallery']['slideshow_style'] + end + data[key1] = [value1,value2,value3] + rescue => e + puts ['error in custom_gallery',e] end - data[key1] = [value1,value2,value3] - rescue => e - puts ['error in custom_gallery',e] - end - require File.expand_path('../../../app/models/custom_album_setting', __FILE__) - if defined?(CustomAlbumSetting) - if CustomAlbumSetting.first.nil? - CustomAlbumSetting.create() - elsif CustomAlbumSetting.count > 1 - CustomAlbumSetting.all.to_a[1..-1].each do |custom_album_setting| - custom_album_setting.destroy + require File.join(CustomGallery::Engine.root, 'app/models/custom_album_setting') + if defined?(CustomAlbumSetting) + if CustomAlbumSetting.first.nil? + CustomAlbumSetting.create() + elsif CustomAlbumSetting.count > 1 + CustomAlbumSetting.all.to_a[1..-1].each do |custom_album_setting| + custom_album_setting.destroy + end end end - end - - OrbitApp.registration "CustomGallery", :type => "ModuleApp" do - module_label "custom_gallery.custom_gallery" - base_url File.expand_path File.dirname(__FILE__) - widget_methods ["widget","custom_album_widget"] - # widget_settings [] - widget_settings [{"data_count"=>30,"enable_custom_widget_data"=>true}] - models_to_cache [:custom_album,:custom_album_image] - taggable "CustomAlbum" - categorizable - authorizable - frontend_enabled - data_count 1..30 - begin - show_option_items data - rescue => e - puts ['there_was_no_show_option_method',e] - end - side_bar do - set_sidebar_order(100) rescue nil - head_label_i18n 'custom_gallery.custom_gallery', icon_class: "fa fa-file-image-o" - available_for "users" - active_for_controllers (['admin/custom_galleries','admin/images']) - head_link_path "admin_custom_galleries_path" + + OrbitApp.registration "CustomGallery", :type => "ModuleApp" do + module_label "custom_gallery.custom_gallery" + base_url File.expand_path File.dirname(__FILE__) + widget_methods ["widget","custom_album_widget"] + # widget_settings [] + widget_settings [{"data_count"=>30,"enable_custom_widget_data"=>true}] + models_to_cache [:custom_album,:custom_album_image] + taggable "CustomAlbum" + categorizable + authorizable + frontend_enabled + data_count 1..30 + begin + show_option_items data + rescue => e + puts ['there_was_no_show_option_method',e] + end + side_bar do + set_sidebar_order(100) rescue nil + head_label_i18n 'custom_gallery.custom_gallery', icon_class: "fa fa-file-image-o" + available_for "users" + active_for_controllers (['admin/custom_galleries','admin/images']) + head_link_path "admin_custom_galleries_path" - context_link 'custom_gallery.all', - :link_path=>"admin_custom_galleries_path" , - :priority=>1, - :active_for_action=>{'admin/custom_galleries'=>"index"}, - :available_for => 'users' + context_link 'custom_gallery.all', + :link_path=>"admin_custom_galleries_path" , + :priority=>1, + :active_for_action=>{'admin/custom_galleries'=>"index"}, + :available_for => 'users' - # context_link 'custom_gallery.new', - # :link_path=>"new_admin_custom_gallery_path" , - # :priority=>2, - # :active_for_action=>{'admin/custom_galleries'=>"new"}, - # :available_for => 'sub_managers' + # context_link 'custom_gallery.new', + # :link_path=>"new_admin_custom_gallery_path" , + # :priority=>2, + # :active_for_action=>{'admin/custom_galleries'=>"new"}, + # :available_for => 'sub_managers' - context_link 'categories', - :link_path=>"admin_module_app_categories_path" , - :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_gallery').id}", - :priority=>3, - :active_for_action=>{'admin/custom_galleries'=>'categories'}, - :active_for_category => 'CustomGallery', - :available_for => 'managers' - - context_link 'tags', - :link_path=>"admin_module_app_tags_path" , - :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_gallery').id}", - :priority=>4, - :active_for_action=>{'admin/custom_galleries'=>'tags'}, - :active_for_tag => 'CustomGallery', - :available_for => 'managers' - context_link 'setting', - :link_path=>"admin_custom_galleries_setting_path" , - :priority=>5, - :active_for_action=>{'admin/custom_galleries'=>'setting'}, - :available_for => 'managers' - end + context_link 'categories', + :link_path=>"admin_module_app_categories_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_gallery').id}", + :priority=>3, + :active_for_action=>{'admin/custom_galleries'=>'categories'}, + :active_for_category => 'CustomGallery', + :available_for => 'managers' + + context_link 'tags', + :link_path=>"admin_module_app_tags_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_gallery').id}", + :priority=>4, + :active_for_action=>{'admin/custom_galleries'=>'tags'}, + :active_for_tag => 'CustomGallery', + :available_for => 'managers' + context_link 'setting', + :link_path=>"admin_custom_galleries_setting_path" , + :priority=>5, + :active_for_action=>{'admin/custom_galleries'=>'setting'}, + :available_for => 'managers' + end + end end end end diff --git a/lib/seminar/engine.rb b/lib/seminar/engine.rb index 394f173..ad434db 100644 --- a/lib/seminar/engine.rb +++ b/lib/seminar/engine.rb @@ -1,55 +1,56 @@ module Seminar class Engine < ::Rails::Engine - initializer "seminar" do - OrbitApp.registration "Seminar", :type => "ModuleApp" do - module_label "seminar.seminar" - base_url File.expand_path File.dirname(__FILE__) - authorizable - categorizable - frontend_enabled - data_count 1..20 - widget_methods ["widget"] - widget_settings [{"data_count"=>30}] - side_bar do - head_label_i18n 'seminar.seminar', icon_class: "icon-globe" - available_for "users" - active_for_controllers (['admin/seminars']) - head_link_path "admin_seminars_path" + initializer "seminar" do + Rails.application.config.to_prepare do + OrbitApp.registration "Seminar", :type => "ModuleApp" do + module_label "seminar.seminar" + base_url File.expand_path File.dirname(__FILE__) + authorizable + categorizable + frontend_enabled + data_count 1..20 + widget_methods ["widget"] + widget_settings [{"data_count"=>30}] + side_bar do + head_label_i18n 'seminar.seminar', icon_class: "icon-globe" + available_for "users" + active_for_controllers (['admin/seminars']) + head_link_path "admin_seminars_path" - context_link 'list_', - :link_path=>"admin_seminars_path" , - :priority=>1, - :active_for_action=>{'admin/seminars'=>'index'}, - :available_for => 'users' - context_link 'new_', - :link_path=>"new_admin_seminar_path" , - :priority=>2, - :active_for_action=>{'admin/seminars'=>'new'}, - :available_for => 'sub_managers' - context_link 'categories', - :link_path=>"admin_module_app_categories_path" , - :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'seminar').id}", - :priority=>3, - :active_for_action=>{'admin/seminars'=>'categories'}, - :active_for_category => 'Seminar', - :available_for => 'managers' - context_link 'seminar.set_seminar_items', - :link_path=>"admin_seminar_items_path" , - :priority=>4, - :active_for_action=>{'admin/seminars'=>'seminar_items'}, - :available_for => 'managers' - context_link 'seminar.set_seminar_agreements', - :link_path=>"admin_seminar_agreements_path" , - :priority=>5, - :active_for_action=>{'admin/seminars'=>'seminar_agreements'}, - :available_for => 'managers' - context_link 'seminar.enquiry_for_applicants', - :link_path=>"admin_seminar_enquiry_for_applicants_path" , - :priority=>6, - :active_for_action=>{'admin/seminars'=>'enquiry_for_applicants'}, - :available_for => 'users' + context_link 'list_', + :link_path=>"admin_seminars_path" , + :priority=>1, + :active_for_action=>{'admin/seminars'=>'index'}, + :available_for => 'users' + context_link 'new_', + :link_path=>"new_admin_seminar_path" , + :priority=>2, + :active_for_action=>{'admin/seminars'=>'new'}, + :available_for => 'sub_managers' + context_link 'categories', + :link_path=>"admin_module_app_categories_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'seminar').id}", + :priority=>3, + :active_for_action=>{'admin/seminars'=>'categories'}, + :active_for_category => 'Seminar', + :available_for => 'managers' + context_link 'seminar.set_seminar_items', + :link_path=>"admin_seminar_items_path" , + :priority=>4, + :active_for_action=>{'admin/seminars'=>'seminar_items'}, + :available_for => 'managers' + context_link 'seminar.set_seminar_agreements', + :link_path=>"admin_seminar_agreements_path" , + :priority=>5, + :active_for_action=>{'admin/seminars'=>'seminar_agreements'}, + :available_for => 'managers' + context_link 'seminar.enquiry_for_applicants', + :link_path=>"admin_seminar_enquiry_for_applicants_path" , + :priority=>6, + :active_for_action=>{'admin/seminars'=>'enquiry_for_applicants'}, + :available_for => 'users' + end end - end end end From 40831d3b8c69d943495f7d1436b5f18c4c335b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E5=8D=9A=E4=BA=9E?= Date: Wed, 28 Feb 2024 10:17:14 +0800 Subject: [PATCH 2/4] Fix indent. --- app/helpers/admin/seminars_field_helper.rb | 2 +- .../_attribute_submission_field.html.erb | 1 + .../seminars/seminar_signup_field.html.erb | 16 ++++++++-------- .../seminars/seminar_submission_field.html.erb | 14 +++++++------- config/locales/en.yml | 17 +++++++++-------- config/locales/zh_tw.yml | 16 ++++++++-------- 6 files changed, 34 insertions(+), 32 deletions(-) diff --git a/app/helpers/admin/seminars_field_helper.rb b/app/helpers/admin/seminars_field_helper.rb index 21ffe5c..1ab35e5 100644 --- a/app/helpers/admin/seminars_field_helper.rb +++ b/app/helpers/admin/seminars_field_helper.rb @@ -26,7 +26,7 @@ module Admin::SeminarsFieldHelper end def lang_tab(str,lang) - content_tag(:div,str,:class=>"tab-pane fade",:id=>(get_field_name_base+"tab_#{lang}")) + content_tag(:div,str,:class=>"tab-pane fade",:id=>(get_field_name_base+"tab_#{lang}")) end def render_address diff --git a/app/views/admin/seminars/_attribute_submission_field.html.erb b/app/views/admin/seminars/_attribute_submission_field.html.erb index 12eadb1..7373e4c 100644 --- a/app/views/admin/seminars/_attribute_submission_field.html.erb +++ b/app/views/admin/seminars/_attribute_submission_field.html.erb @@ -128,6 +128,7 @@ <%= content_tag :div,:class=>"field-type default fade in #{show_seminar_type_panel(attribute_submission_field,"typeE")}" do%> <%= render :partial=>"shared/attribute_field/list_block",:locals=>{:field_name=>"#{@field_name}[seminar_submission_fields_attributes][#{@af_counter}][typeE][option_list]",:values=>attribute_submission_field["typeE"]["option_list"]}%> <% end if show_seminar_type_panel(attribute_submission_field,"typeE") != 'typeE hide' %> + <%= content_tag :div,:class=>"field-type default fade in #{show_seminar_type_panel(attribute_submission_field,"typeF")}" do%>
diff --git a/app/views/admin/seminars/seminar_signup_field.html.erb b/app/views/admin/seminars/seminar_signup_field.html.erb index a4c2359..0048bd9 100644 --- a/app/views/admin/seminars/seminar_signup_field.html.erb +++ b/app/views/admin/seminars/seminar_signup_field.html.erb @@ -1,16 +1,16 @@ <% content_for :page_specific_css do -%> - <%= stylesheet_link_tag "lib/wrap-nav.css" %> - <%= stylesheet_link_tag "lib/pageslide.css" %> - <%= stylesheet_link_tag "lib/main-forms.css" %> - <%= stylesheet_link_tag "lib/togglebox.css" %> + <%= stylesheet_link_tag "lib/wrap-nav.css" %> + <%= stylesheet_link_tag "lib/pageslide.css" %> + <%= stylesheet_link_tag "lib/main-forms.css" %> + <%= stylesheet_link_tag "lib/togglebox.css" %> <% end -%> <% content_for :page_specific_javascript do -%> - <%= javascript_include_tag "lib/jquery.tmpl.min.js" %> - <%= javascript_include_tag "seminar-field-forms.js" %> + <%= javascript_include_tag "lib/jquery.tmpl.min.js" %> + <%= javascript_include_tag "seminar-field-forms.js" %> <% end -%> -<%= form_for @attribute,:url => admin_seminar_path(@attribute) , :html => { :class=> "form-horizontal main-forms" } do |f| %> +<%= form_for @attribute, url: admin_seminar_path(@attribute) , html: { class: "form-horizontal main-forms" } do |f| %> <% if flash.now[:notice].present? %> <%= flash.now[:notice]%> <% end %> @@ -19,7 +19,7 @@
- <%= render partial: "attribute_field",collection: @attribute.seminar_signup_fields.asc(:sort_number, :_id)%> + <%= render partial: "attribute_field", collection: @attribute.seminar_signup_fields.asc(:sort_number, :_id)%>
diff --git a/app/views/admin/seminars/seminar_submission_field.html.erb b/app/views/admin/seminars/seminar_submission_field.html.erb index 9e7a942..1143236 100644 --- a/app/views/admin/seminars/seminar_submission_field.html.erb +++ b/app/views/admin/seminars/seminar_submission_field.html.erb @@ -1,15 +1,15 @@ <% content_for :page_specific_css do -%> - <%= stylesheet_link_tag "lib/wrap-nav.css" %> - <%= stylesheet_link_tag "lib/pageslide.css" %> - <%= stylesheet_link_tag "lib/main-forms.css" %> - <%= stylesheet_link_tag "lib/togglebox.css" %> + <%= stylesheet_link_tag "lib/wrap-nav.css" %> + <%= stylesheet_link_tag "lib/pageslide.css" %> + <%= stylesheet_link_tag "lib/main-forms.css" %> + <%= stylesheet_link_tag "lib/togglebox.css" %> <% end -%> <% content_for :page_specific_javascript do -%> - <%= javascript_include_tag "lib/jquery.tmpl.min.js" %> - <%= javascript_include_tag "seminar-field-forms-submission.js" %> + <%= javascript_include_tag "lib/jquery.tmpl.min.js" %> + <%= javascript_include_tag "seminar-field-forms-submission.js" %> <% end -%> -<%= form_for @attribute,:url => admin_seminar_path(@attribute) , :html => { :class=> "form-horizontal main-forms" } do |f| %> +<%= form_for @attribute, url: admin_seminar_path(@attribute) , html: { class: "form-horizontal main-forms" } do |f| %> <% if flash.now[:notice].present? %> <%= flash.now[:notice]%> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index c316bfa..3e23680 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -5,7 +5,8 @@ en: label: "" lists: markups: - seminar_preferred_session: Preferred Session + seminar_preferred_session: Preferred Session + restful_actions: edit_seminar_review: Review copy: Copy @@ -46,12 +47,12 @@ en: home_setting: Home Setting sub_page_setting: Sub Page Setting menu: - introduction: Introduction - news: News - registration: Registration - registered_participants: Registered Participants - submission: Submission - album: Album + introduction: Introduction + news: News + registration: Registration + registered_participants: Registered Participants + submission: Submission + album: Album introduction: Introduction announcement_limit: Announcement ;imit album_limit: Album limit @@ -160,7 +161,7 @@ en: contribute_file_count: Count of Contribute Files #投稿檔案數 frontend: - seminar: Semianr #研討會前台 + seminar: Semianr #研討會前台 seminar_item: new_item: New Item #新增項目 diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml index a31cc88..43649b1 100644 --- a/config/locales/zh_tw.yml +++ b/config/locales/zh_tw.yml @@ -5,7 +5,7 @@ zh_tw: label: "" lists: markups: - seminar_preferred_session: Preferred Session + seminar_preferred_session: Preferred Session restful_actions: edit_seminar_review: 審查 @@ -47,12 +47,12 @@ zh_tw: home_setting: 首頁設定 sub_page_setting: 內頁設定 menu: - introduction: 介紹 - news: 公告 - registration: 註冊 - registered_participants: 註冊參與者 - submission: 投稿 - album: 相簿 + introduction: 介紹 + news: 公告 + registration: 註冊 + registered_participants: 註冊參與者 + submission: 投稿 + album: 相簿 introduction: 介紹 announcement_limit: 公告上限 album_limit: 相簿上限 @@ -161,7 +161,7 @@ zh_tw: contribute_file_count: 投稿檔案數 frontend: - seminar: 研討會前台 + seminar: 研討會前台 seminar_item: new_item: 新增項目 From 1e52c3bf912e4dfd181158b9db64d319a3529bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E5=8D=9A=E4=BA=9E?= Date: Wed, 28 Feb 2024 14:15:01 +0800 Subject: [PATCH 3/4] Fix bug. --- app/controllers/seminars_controller.rb | 48 +++++++++++++++----------- app/views/seminars/con_login.html.erb | 2 +- app/views/seminars/con_upload.html.erb | 8 ++--- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/app/controllers/seminars_controller.rb b/app/controllers/seminars_controller.rb index 50bae30..6db4690 100644 --- a/app/controllers/seminars_controller.rb +++ b/app/controllers/seminars_controller.rb @@ -345,7 +345,7 @@ class SeminarsController < ApplicationController sign_up = link_to(sign_up_text, seminar.get_frontend_url(seminar_url), :target=>'_blank', :title=>sign_up_text) end - if !seminar.registration_status.blank? && seminar.registration_status.include?('C') && seminar.contribute_start_date <= time_now && ( seminar.contribute_end_date.nil? || seminar.contribute_end_date+1 >= time_now ) + if !seminar.registration_status.blank? && seminar.registration_status.include?('C') && (seminar.contribute_start_date.nil? || seminar.contribute_start_date <= time_now) && ( seminar.contribute_end_date.nil? || seminar.contribute_end_date+1 >= time_now ) if @@session[:seminar_signup_id].present? && @@session[:seminar_main_id] == seminar.id button_text = t('seminar_signup.uploads') contribute_action = link_to(button_text, seminar.get_frontend_url(seminar_url, :con_upload), :title=>button_text) @@ -522,20 +522,24 @@ class SeminarsController < ApplicationController def add_file_proc - update_params = seminar_signup_contribute_params.merge('seminar_submission_values'=>params['seminar_submission_values']) + update_params = seminar_signup_contribute_params.merge('seminar_submission_values'=>params['seminar_submission_values'].to_h) flag = true update_params.permit! - if !update_params['seminar_submission_values'].nil? - if update_params['seminar_submission_values']['0']['value'].class==String - value = update_params['seminar_submission_values']['0']['value'] - if !value.to_s.blank? - flag = false - end + if update_params['seminar_submission_values'].present? + if update_params['seminar_submission_values']['0']['value'].nil? + flag = false else - update_params['seminar_submission_values']['0']['value'].each do |key,value| - if !value.to_s.blank? + if update_params['seminar_submission_values']['0']['value'].class==String + value = update_params['seminar_submission_values']['0']['value'] + if !value.to_s.blank? flag = false end + else + update_params['seminar_submission_values']['0']['value'].each do |key,value| + if !value.to_s.blank? + flag = false + end + end end end else @@ -574,20 +578,24 @@ class SeminarsController < ApplicationController def update @con = SeminarSignupContribute.find(params[:seminar_signup_contribute][:id]) - update_params = seminar_signup_contribute_params.merge('seminar_submission_values'=>params['seminar_submission_values']) + update_params = seminar_signup_contribute_params.merge('seminar_submission_values'=>params['seminar_submission_values'].to_h) update_params.permit! - unless update_params['seminar_submission_values'].nil? - flag = true - if update_params['seminar_submission_values']['0']['value'].class==String - value = update_params['seminar_submission_values']['0']['value'] - if !value.to_s.blank? - flag = false - end + if update_params['seminar_submission_values'].present? + if update_params['seminar_submission_values']['0']['value'].nil? + flag = false else - update_params['seminar_submission_values']['0']['value'].each do |key,value| - if !value.to_s.blank? + flag = true + if update_params['seminar_submission_values']['0']['value'].class==String + value = update_params['seminar_submission_values']['0']['value'] + if !value.to_s.blank? flag = false end + else + update_params['seminar_submission_values']['0']['value'].each do |key,value| + if !value.to_s.blank? + flag = false + end + end end end if flag diff --git a/app/views/seminars/con_login.html.erb b/app/views/seminars/con_login.html.erb index 7125135..f179018 100644 --- a/app/views/seminars/con_login.html.erb +++ b/app/views/seminars/con_login.html.erb @@ -9,7 +9,7 @@ color: red; } -<% if (@seminar.contribute_start_date <= @time_now && (@seminar.contribute_end_date.nil? or @seminar.contribute_end_date+1 >= @time_now ) rescue false) %> +<% if (@seminar.contribute_start_date.nil? || @seminar.contribute_start_date <= @time_now) && (@seminar.contribute_end_date.nil? or @seminar.contribute_end_date+1 >= @time_now ) %>
\ No newline at end of file diff --git a/app/views/admin/seminars/_attribute_submission_field.html.erb b/app/views/admin/seminars/_attribute_submission_field.html.erb index 7373e4c..d819c14 100644 --- a/app/views/admin/seminars/_attribute_submission_field.html.erb +++ b/app/views/admin/seminars/_attribute_submission_field.html.erb @@ -141,6 +141,35 @@
<% end if show_seminar_type_panel(attribute_submission_field,"typeF") != 'typeF hide' %> + + <%= content_tag :div,:class=>"field-type default fade in #{show_seminar_type_panel(attribute_submission_field,"typeG")}" do%> + <% typeG_field_name = "#{@field_name}[seminar_signup_fields_attributes][#{@af_counter}][typeG][instructions]" %> + <%= content_tag :div, class: "control-group" do %> + +
+
+
+
+ <% @site_in_use_locales.each do |locale| %> + <% active = (locale == @site_in_use_locales.first ? "active" : "") %> + <%= link_to t(locale).to_s,"##{name_to_id(typeG_field_name)}_#{locale}",:class=>"btn #{active}",:data=>{:toggle=>"tab"}%> + <% end %> +
+
+
+ <% @site_in_use_locales.each do |locale| %> + <% active = (locale == @site_in_use_locales.first ? "active in" : "'") %> + <%= content_tag :div, {class: "tab-pane fade #{active}", id: "#{name_to_id(typeG_field_name)}_#{locale}"} do %> + <% locale_value = attribute_submission_field["typeG"]["instructions"][locale.to_s] %> + <%= text_area(typeG_field_name, locale, value: locale_value, placeholder: "#{t(locale).to_s}", data: {:type=>"lang_#{locale}"}, class: 'ckeditor') %> + <% end %> + <% end %> +
+
+
+ <% end %> + <% end if show_seminar_type_panel(attribute_submission_field,"typeG") != 'typeG hide' %> + <%= hidden_field "#{@field_name}[seminar_submission_fields_attributes][#{@af_counter}]","id",:value=>attribute_submission_field.id%> \ No newline at end of file diff --git a/app/views/admin/seminars/_support_member_form_js.erb b/app/views/admin/seminars/_support_member_form_js.erb index 25aa036..24b80cf 100644 --- a/app/views/admin/seminars/_support_member_form_js.erb +++ b/app/views/admin/seminars/_support_member_form_js.erb @@ -112,7 +112,7 @@ diff --git a/config/list.yml b/config/list.yml index 1e8330e..08d6cc4 100644 --- a/config/list.yml +++ b/config/list.yml @@ -45,3 +45,7 @@ markups: ext_support: false panel: typeF display_only: seminar_submission_field + instructions: + muti_lang_input_supprt: false + ext_support: false + panel: typeG \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 3e23680..afd0711 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -6,6 +6,7 @@ en: lists: markups: seminar_preferred_session: Preferred Session + instructions: Instructions restful_actions: edit_seminar_review: Review diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml index 43649b1..5ce9057 100644 --- a/config/locales/zh_tw.yml +++ b/config/locales/zh_tw.yml @@ -6,6 +6,7 @@ zh_tw: lists: markups: seminar_preferred_session: Preferred Session + instructions: "說明文字 Instructions" restful_actions: edit_seminar_review: 審查