From be4280c4aeabeab37e679daaf62e97899a740215 Mon Sep 17 00:00:00 2001 From: Peter Chiu Date: Tue, 13 May 2025 10:46:36 +0800 Subject: [PATCH] migrate bulletin carousels show functions to event_news and fix AAAAAA.png url --- app/assets/images/event_news/AAAAAA.png | Bin 0 -> 182 bytes app/controllers/event_news_mods_controller.rb | 36 ++- app/helpers/event_news_helper.rb | 52 ---- app/models/event_news.rb | 6 +- app/models/event_news_setting.rb | 1 + app/views/admin/event_news/_form.html.erb | 9 +- .../admin/event_news/_form_image.html.erb | 2 +- app/views/admin/event_news/settings.html.erb | 7 + app/views/event_news_mods/_carousels.html.erb | 1 + .../event_news_mods/_carousels0.html.erb | 283 ++++++++++++++++++ .../event_news_mods/_carousels1.html.erb | 13 + app/views/event_news_mods/show.html.erb | 120 +------- config/locales/en.yml | 6 + config/locales/zh_tw.yml | 6 + 14 files changed, 366 insertions(+), 176 deletions(-) create mode 100644 app/assets/images/event_news/AAAAAA.png create mode 100644 app/views/event_news_mods/_carousels.html.erb create mode 100644 app/views/event_news_mods/_carousels0.html.erb create mode 100644 app/views/event_news_mods/_carousels1.html.erb diff --git a/app/assets/images/event_news/AAAAAA.png b/app/assets/images/event_news/AAAAAA.png new file mode 100644 index 0000000000000000000000000000000000000000..772a39b4e7ef6135c9c9edfe34d876f16eac7026 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_>3?$zOPHh5G(g8jpuJ7N!U$tu0;lqcoUcGwe z%$ZG_Hr>5@clYky&z?PdNOuZqb%w(bDpwecm^^DC&S7B0Bo;>Se apb<}hbENYsC8hxlWAJqKb6Mw<&;$U1c0M2g literal 0 HcmV?d00001 diff --git a/app/controllers/event_news_mods_controller.rb b/app/controllers/event_news_mods_controller.rb index 3e0481b..3e14ca7 100644 --- a/app/controllers/event_news_mods_controller.rb +++ b/app/controllers/event_news_mods_controller.rb @@ -672,6 +672,20 @@ class EventNewsModsController < ApplicationController pause_btn_title = (I18n.locale.to_s =="zh_tw") ? "暫停播放" : "pause" prev_btn_title = (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" next_btn_title = (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" + carousel_data = { + "event_carousel_images" => event_carousel_images, + "resume_btn_title" => resume_btn_title, + "pause_btn_title" => pause_btn_title, + "prev_btn_title" => prev_btn_title, + "next_btn_title" => next_btn_title, + "carousel_display_style" => (event_carousel_images.count == 0 ? 'display: none' : "width: #{event_news.carousel_image_width};margin: auto;"), + "carousel_count" => event_carousel_images.count} + carousel_html = "" + if carousel_data["carousel_count"] != 0 + carousel_image_type = event_news.carousel_image_type + ac = ActionController::Base.new() + carousel_html = ac.render_to_string(:partial=>'event_news_mods/carousels',:locals=>{:data=>carousel_data,:carousel_image_type=>carousel_image_type}) + end begin event_time = event_news.event_time_formated_for_frontend rescue => e @@ -692,7 +706,6 @@ class EventNewsModsController < ApplicationController "event_news_files" => files, "profiles" => profiles, "event_news_links" => links, - "event_carousel_images" => event_carousel_images, "data" => { "title-head" => EventNewsCustomTitle.get_trans('title'), "speaker-head" => EventNewsCustomTitle.get_trans('speaker'), @@ -724,7 +737,8 @@ class EventNewsModsController < ApplicationController "carousel_display_style" => (event_carousel_images.count == 0 ? 'display: none' : "width: #{event_news.carousel_image_width};margin: auto;"), "carousel_count" => event_carousel_images.count, "place_text" => (event_news.place.blank? ? "" : "#{EventNewsCustomTitle.get_trans("place")}: #{event_news.place}"), - "place-css" => (event_news.place.blank? ? "display: none;" : "") + "place-css" => (event_news.place.blank? ? "display: none;" : ""), + "carousel_html" => carousel_html, }, "impressionist" => (event_news.is_preview ? nil : event_news), "url_to_edit"=>url_to_edit @@ -796,13 +810,26 @@ class EventNewsModsController < ApplicationController pause_btn_title = (I18n.locale.to_s =="zh_tw") ? "暫停播放" : "pause" prev_btn_title = (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" next_btn_title = (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" + carousel_data = { + "event_carousel_images" => event_carousel_images, + "resume_btn_title" => resume_btn_title, + "pause_btn_title" => pause_btn_title, + "prev_btn_title" => prev_btn_title, + "next_btn_title" => next_btn_title, + "carousel_display_style" => (event_carousel_images.count == 0 ? 'display: none' : "width: #{EventNewsSetting.last.carousel_image_width};margin: auto;"), + "carousel_count" => event_carousel_images.count} + carousel_html = "" + if carousel_data["carousel_count"] != 0 + carousel_image_type = event_news["carousel_image_type"].to_i + ac = ActionController::Base.new() + carousel_html = ac.render_to_string(:partial=>'event_news_mods/carousels',:locals=>{:data=>carousel_data,:carousel_image_type=>carousel_image_type}) + end speaker = event_news["speaker_translations"][locale] host = event_news["host_translations"][locale] { "tags" => tags, "event_news_files" => files, "event_news_links" => links, - "event_carousel_images" => event_carousel_images, "data" => { "title" => event_news["title_translations"][locale], "subtitle_ann" => subtitle_ann, @@ -834,7 +861,8 @@ class EventNewsModsController < ApplicationController "carousel_display_style" => (event_carousel_images.count == 0 ? 'display: none' : "width: #{EventNewsSetting.last.carousel_image_width};margin: auto;"), "carousel_count" => event_carousel_images.count, "place_text" => (event_news["place"].blank? ? "" : "#{I18n.t("event_news.place")}: #{event_news["place"]}"), - "place-css" => (event_news["place"].blank? ? "display: none;" : "") + "place-css" => (event_news["place"].blank? ? "display: none;" : ""), + "carousel_html" => carousel_html }, "impressionist" => nil, "url_to_edit" => url_to_edit diff --git a/app/helpers/event_news_helper.rb b/app/helpers/event_news_helper.rb index 094e3c5..ce76249 100644 --- a/app/helpers/event_news_helper.rb +++ b/app/helpers/event_news_helper.rb @@ -500,58 +500,6 @@ module EventNewsHelper end layout_types end - def render_ad_banner(event_carousel_images,data) - ("
-
-
" + - event_carousel_images.collect do |e| - "
- \"#{e['description_text']}\" -
-

#{e['description']}

-
-
-
" - end.join+ - "
-
-
    - - -
-
-
-

1/#{data['carousel_count']}

-
    " + - event_carousel_images.collect do |e| - "
  • -
    - \"#{e['description_text']}\" -
    -
  • " - end.join + - "
-
    - - -
-
-
").html_safe - end def complementaryColor(my_hex) if my_hex[0] == '#' diff --git a/app/models/event_news.rb b/app/models/event_news.rb index 9ec740d..edcc530 100644 --- a/app/models/event_news.rb +++ b/app/models/event_news.rb @@ -52,6 +52,7 @@ class EventNews field :hour_clock_24, type: Boolean, default: true field :is_edit, type: Boolean, default: false #use to check whether the preview record changed field :copy_id + field :custom_carousel_image_type, :type => Integer, :default => 0 # 0: default, 1: carousel, 2: album field :custom_carousel_image_width, type: String, default: "" field :image_display_class, type: String, default: "full-size-img" #3 choices: full-size-img , pull-left , pull-right field :add_to_calendar,type: Boolean,default: false @@ -399,8 +400,11 @@ class EventNews def hidden_text I18n.t("announcement.status.hidden") end + def carousel_image_type + (self.custom_carousel_image_type == 0 ? EventNewsSetting.last.carousel_image_type : self.custom_carousel_image_type - 1) rescue 0 + end def carousel_image_width - (self.custom_carousel_image_width.blank? ? AnnouncementSetting.last.carousel_image_width : self.custom_carousel_image_width) + (self.custom_carousel_image_width.blank? ? EventNewsSetting.last.carousel_image_width : self.custom_carousel_image_width) end def self.agenda_events(agenda_start, agenda_end,read_more_url) diff --git a/app/models/event_news_setting.rb b/app/models/event_news_setting.rb index 183aae0..cf4e854 100644 --- a/app/models/event_news_setting.rb +++ b/app/models/event_news_setting.rb @@ -1,6 +1,7 @@ class EventNewsSetting include Mongoid::Document include Mongoid::Timestamps + field :carousel_image_type, :type => Integer, :default => 0 # 0: carousel, 1: album field :carousel_image_width, type: String, :default => "75%" field :top_limit, type: Integer, :default => 0 field :pro_enabled, type: Boolean, :default => false diff --git a/app/views/admin/event_news/_form.html.erb b/app/views/admin/event_news/_form.html.erb index 9dc869f..dc9af17 100644 --- a/app/views/admin/event_news/_form.html.erb +++ b/app/views/admin/event_news/_form.html.erb @@ -287,7 +287,7 @@ <% if @event_news.image.file %> <%= image_tag @event_news.image %> <% else %> - + <% end %>
@@ -320,6 +320,13 @@