Compare commits
5 Commits
Author | SHA1 | Date |
---|---|---|
|
f08404cec0 | |
|
00c2e3d909 | |
|
aa468024a8 | |
|
b59b6553b9 | |
|
be4280c4ae |
Binary file not shown.
After Width: | Height: | Size: 182 B |
|
@ -4,4 +4,4 @@
|
|||
*/
|
||||
.table .expired{
|
||||
color: #BE2E2E;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -150,3 +150,19 @@ ul.button-mid .next-button {
|
|||
.next-button,.prev-button{
|
||||
cursor: pointer;
|
||||
}
|
||||
a.orbit-hash-tag {
|
||||
list-style: none;
|
||||
background: #e0edff;
|
||||
color: #0a84ff;
|
||||
margin-right: 0.5em;
|
||||
border-radius: 0.5em;
|
||||
padding: 0.2em 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
display: inline-block;
|
||||
&:hover{
|
||||
background: #0a84ff;
|
||||
transform: translatey(-2px);
|
||||
transition: transform 0.4s;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
|
@ -689,4 +689,6 @@
|
|||
.s-event_news__social .print-button:hover {
|
||||
background-color: lighten($theme-color-main, 10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -103,7 +103,8 @@ class EventNewsModsController < ApplicationController
|
|||
"img_src" => image_url || DefaultImgSrc,
|
||||
"img_description" => desc,
|
||||
"more" => t("event_news.more"),
|
||||
"view_count" => a.view_count
|
||||
"view_count" => a.view_count,
|
||||
"orbithashtags" => a.hashtags_for_frontend
|
||||
}
|
||||
else
|
||||
a
|
||||
|
@ -516,6 +517,9 @@ class EventNewsModsController < ApplicationController
|
|||
if tags.blank?
|
||||
tags = ["all"]
|
||||
end
|
||||
if OrbitHelper.params["hash"].present?
|
||||
hashtag = OrbitHelper.params["hash"]
|
||||
end
|
||||
subpart = OrbitHelper.get_current_widget
|
||||
widget_data_count = OrbitHelper.widget_data_count
|
||||
event_news_cache = EventNewsCache.where(parent_id: subpart.id.to_s + cats.to_s + tags.to_s + widget_data_count.to_s,locale: I18n.locale.to_s)
|
||||
|
@ -672,6 +676,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 +710,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 +741,9 @@ 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,
|
||||
"orbithashtags" => event_news.hashtags_for_frontend
|
||||
},
|
||||
"impressionist" => (event_news.is_preview ? nil : event_news),
|
||||
"url_to_edit"=>url_to_edit
|
||||
|
@ -796,13 +815,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 +866,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
|
||||
|
|
|
@ -199,10 +199,15 @@ module EventNewsHelper
|
|||
event_news = @show_today_data_first ?
|
||||
EventNews.can_display_and_sorted_according_today :
|
||||
EventNews.can_display_and_sorted
|
||||
|
||||
event_news = event_news
|
||||
if params["orbithashtag"].present?
|
||||
event_news = event_news
|
||||
.filter_by_categories(categories, false).filter_by_hashtag(OrbitHelper.page_hashtag_id)
|
||||
.where(:title.nin => ["",nil])
|
||||
else
|
||||
event_news = event_news
|
||||
.filter_by_categories(categories, false).filter_by_tags(tags)
|
||||
.where(:title.nin => ["",nil])
|
||||
end
|
||||
if @type == "show_widget"
|
||||
if !params[:uids].blank?
|
||||
member_profile = MemberProfile.any_in(:uid=>params[:uids])
|
||||
|
@ -255,14 +260,14 @@ module EventNewsHelper
|
|||
tmp1 ? 0 : 1, tmp1 ? nil : event_news["event_date"].to_time,
|
||||
tmp2 ? 0 : 1, tmp2 ? nil : event_news["postdate"].to_time
|
||||
]
|
||||
}
|
||||
}
|
||||
end
|
||||
if !@show_today_data_first
|
||||
event_news_list = event_news_list.reverse
|
||||
end
|
||||
else
|
||||
if enable_manually_sort
|
||||
event_news_list = event_news_list.sort_by { |event_news|
|
||||
event_news_list = event_news_list.sort_by { |event_news|
|
||||
tmp1 = event_news["event_date"].blank?
|
||||
tmp2 = event_news["postdate"].blank?
|
||||
[
|
||||
|
@ -272,7 +277,7 @@ module EventNewsHelper
|
|||
]
|
||||
}.reverse
|
||||
else
|
||||
event_news_list = event_news_list.sort_by { |event_news|
|
||||
event_news_list = event_news_list.sort_by { |event_news|
|
||||
tmp1 = event_news["event_date"].blank?
|
||||
tmp2 = event_news["postdate"].blank?
|
||||
[
|
||||
|
@ -309,7 +314,7 @@ module EventNewsHelper
|
|||
if wrap_elements.count > 0
|
||||
htmls = parsing_repeats_again(wrap_elements,d[data_name][i], level + 1)
|
||||
htmls[0].each_with_index do |html,i|
|
||||
element = element.gsub(html,htmls[1][i])
|
||||
element = element.gsub(html,htmls[1][i])
|
||||
end
|
||||
end
|
||||
item.each do |key,value|
|
||||
|
@ -345,11 +350,11 @@ module EventNewsHelper
|
|||
doc = Nokogiri::HTML(file, nil, "UTF-8")
|
||||
file.close
|
||||
controller = EventNewsController.new
|
||||
begin
|
||||
begin
|
||||
data = @data# rescue nil
|
||||
rescue Exception => e
|
||||
rescue Exception => e
|
||||
write_debug_file(e,'event_news_mod',@target_action) if Site::DEBUG
|
||||
end
|
||||
end
|
||||
if !data.nil?
|
||||
wrap_elements = doc.css("*[data-list][data-level='0']")
|
||||
htmls = parsing_repeats_again(wrap_elements,data,1)
|
||||
|
@ -382,11 +387,11 @@ module EventNewsHelper
|
|||
doc = Nokogiri::HTML(file, nil, "UTF-8")
|
||||
file.close
|
||||
controller = EventNewsController.new
|
||||
begin
|
||||
begin
|
||||
data = @data# rescue nil
|
||||
rescue Exception => e
|
||||
rescue Exception => e
|
||||
write_debug_file(e,'event_news_mod',@target_action) if Site::DEBUG
|
||||
end
|
||||
end
|
||||
if data.nil?
|
||||
return "<div class='well'> No content to show. </div>".html_safe
|
||||
end
|
||||
|
@ -491,8 +496,8 @@ module EventNewsHelper
|
|||
if layout_types.empty?
|
||||
Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_app}/*").each do |w|
|
||||
next if File.ftype(w).eql?("directory")
|
||||
w = File.basename(w, ".*")
|
||||
w = File.basename(w, ".*")
|
||||
w = File.basename(w, ".*")
|
||||
w = File.basename(w, ".*")
|
||||
if w[0,1] != "_" && w[0,1] != "s" && w != "info"
|
||||
layout_types << w
|
||||
end
|
||||
|
@ -525,7 +530,7 @@ module EventNewsHelper
|
|||
<p><strong class=\"carousel__description\">#{e['description']}</strong></p>
|
||||
</div>
|
||||
<div class=\"transitionfade\"></div>
|
||||
</div>"
|
||||
</div>"
|
||||
end.join+
|
||||
"</div>
|
||||
<ul class=\"controlplay\"><a class=\"resume-slide\" title = \"#{data['resume_btn_title']}\"><i></i></a><a class=\"pause-slide\" title = \"#{data['pause_btn_title']}\"><i></i></a></ul>
|
||||
|
|
|
@ -6,6 +6,7 @@ class EventNews
|
|||
include OrbitModel::Impression
|
||||
# encoding: utf-8
|
||||
include OrbitTag::Taggable
|
||||
include OrbitHashtag::Hashtaggable
|
||||
include OrbitCategory::Categorizable
|
||||
include Slug
|
||||
require 'event_news_mod/cache'
|
||||
|
@ -52,6 +53,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 +401,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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
<li><a href="#status" data-toggle="tab"><%= t(:status) %></a></li>
|
||||
<% end %>
|
||||
<li><a href="#tag" data-toggle="tab"><%= t(:tags) %></a></li>
|
||||
<li><a href="#hashtag" data-toggle="tab"><%= t(:hashtags) %></a></li>
|
||||
<li><a href="#imageupload" data-toggle="tab"><%= t('event_news.image') %></a></li>
|
||||
<li><a href="#carousel_image_upload" data-toggle="tab" title="<%= t('event_news.carousel_image_title') %>"><%= t('event_news.carousel_image') %></a></li>
|
||||
<li><a href="#mail-group" data-toggle="tab"><%= t('event_news.email_reminder')%></a></li>
|
||||
|
@ -275,6 +276,14 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hashtag Module -->
|
||||
<div class="tab-pane fade" id="hashtag">
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:hashtags) %></label>
|
||||
<%= select_hashtags(f, @module_app) %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Images Module -->
|
||||
<div class="tab-pane fade" id="imageupload">
|
||||
|
||||
|
@ -287,7 +296,7 @@
|
|||
<% if @event_news.image.file %>
|
||||
<%= image_tag @event_news.image %>
|
||||
<% else %>
|
||||
<img src="http://www.placehold.it/50x50/EFEFEF/AAAAAA" />
|
||||
<img src="/assets/event_news/AAAAAA" />
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="fileupload-preview fileupload-exists thumbnail pull-left"></div>
|
||||
|
@ -320,6 +329,13 @@
|
|||
|
||||
<!-- Images Module -->
|
||||
<div class="tab-pane fade" id="carousel_image_upload">
|
||||
<div class="control-group">
|
||||
<%= f.label :custom_carousel_image_type, t("event_news.default_carousel_image_type"), :class => "control-label muted" %>
|
||||
<div class="controls">
|
||||
<% carousel_image_types = ["default","carousel","album"] %>
|
||||
<%= f.select :custom_carousel_image_type, options_for_select(carousel_image_types.map.with_index{|type,i| [t("event_news.carousel_image_types.#{type}"),i]}.to_h,:selected => f.object.custom_carousel_image_type) %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label muted" for="carousel_image_width"><%= t("event_news.carousel_image_width") %></label>
|
||||
<div class="controls">
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<% if form_image.file.file %>
|
||||
<%= image_tag form_image.file %>
|
||||
<% else %>
|
||||
<img src="http://www.placehold.it/50x50/EFEFEF/AAAAAA" />
|
||||
<img src="/assets/event_news/AAAAAA" />
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="fileupload-preview fileupload-exists thumbnail pull-left"></div>
|
||||
|
|
|
@ -130,6 +130,13 @@
|
|||
<div id="notification"><%= t("event_news.click_on_submit") %></div>
|
||||
<%= form_for @setting, url: (@setting.new_record? ? admin_event_news_createsettings_path : admin_event_news_updatesettings_path), html: {class: "form-horizontal main-forms"} do |f| %>
|
||||
<div class="input-area">
|
||||
<div class="control-group">
|
||||
<%= f.label :carousel_image_type, t("event_news.default_carousel_image_type"), :class => "control-label muted" %>
|
||||
<div class="controls">
|
||||
<% carousel_image_types = ["carousel","album"] %>
|
||||
<%= f.select :carousel_image_type, options_for_select(carousel_image_types.map.with_index{|type,i| [t("event_news.carousel_image_types.#{type}"),i]}.to_h,:selected => f.object.carousel_image_type) %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<%= f.label :carousel_image_width, t("event_news.default_carousel_image_width"), :class => "control-label muted" %>
|
||||
<div class="controls">
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<%= render(:partial=>"event_news_mods/carousels#{carousel_image_type}", :locals=>{:data=>data}) %>
|
|
@ -0,0 +1,283 @@
|
|||
<style type="text/css">
|
||||
strong.carousel__description {
|
||||
color: white;
|
||||
}
|
||||
.carousel_images{
|
||||
<%=data["carousel_display_style"]%>
|
||||
}
|
||||
@media (max-width: 767px){
|
||||
.carousel_images{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div class="carousel_images">
|
||||
<div class="w-ba-banner ba-banner-widget-1">
|
||||
<div class="w-ba-banner__wrap cycle-slideshow"
|
||||
data-cycle-slides=".event_carousel_slide"
|
||||
data-cycle-log="false"
|
||||
data-cycle-auto-height="0"
|
||||
data-cycle-speed="300"
|
||||
data-cycle-timeout="5000"
|
||||
data-cycle-fx="fade"
|
||||
data-pager-active-class="active-slide"
|
||||
data-cycle-swipe=true
|
||||
data-cycle-swipe-fx="scrollHorz"
|
||||
>
|
||||
<%data["event_carousel_images"].each do |event_carousel_image|%>
|
||||
<div class="w-ba-banner__slide event_carousel_slide"
|
||||
data-cycle-title="<%=event_carousel_image["description_text"]%>"
|
||||
>
|
||||
<img class="w-ba-banner__image banner-responsive" src="<%=event_carousel_image["src"]%>" alt="<%=event_carousel_image["description_text"]%>">
|
||||
<div class="ad-overlay w-ad-banner__overlay event_carousel__overlay">
|
||||
<p><strong class="carousel__description"><%=event_carousel_image["description"]%></strong></p>
|
||||
</div>
|
||||
<div class="transitionfade"></div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<ul class="controlplay"><a class="resume-slide" title = "<%=data["resume_btn_title"]%>"><i></i></a><a class="pause-slide" title = "<%=data["pause_btn_title"]%>"><i></i></a></ul>
|
||||
<ul class="button-mid">
|
||||
<i class="fa fa-angle-left prev-button" aria-hidden="true" title = "<%=data["prev_btn_title"]%>"></i>
|
||||
<i class="fa fa-angle-right next-button" aria-hidden="true" title = "<%=data["next_btn_title"]%>"></i>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="position: relative;">
|
||||
<h4><span class="active_slide">1</span>/<%=data["carousel_count"]%></h4>
|
||||
<ul class="carousel_images_slide w-annc__list row list-unstyled">
|
||||
<%data["event_carousel_images"].each do |event_carousel_image|%>
|
||||
<li class="carousel_img_item col-sm-3">
|
||||
<div class="carousel_img-wrap">
|
||||
<img class="carousel_img" src="<%=event_carousel_image["src"]%>" alt="<%=event_carousel_image["description_text"]%>">
|
||||
</div>
|
||||
</li>
|
||||
<%end%>
|
||||
</ul>
|
||||
<ul class="button-mid">
|
||||
<i class="fa fa-angle-left prev-button prev_img" aria-hidden="true" title="<%=data["prev_btn_title"]%>"></i>
|
||||
<i class="fa fa-angle-right next-button next_img" aria-hidden="true" title="<%=data["next_btn_title"]%>"></i>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<style type="text/css">
|
||||
.carousel_img_item{
|
||||
display: none;
|
||||
float: left;
|
||||
}
|
||||
.controlplay {
|
||||
position: absolute;
|
||||
right: 1em;
|
||||
top: 3%;
|
||||
z-index: 200;
|
||||
}
|
||||
.controlplay a {
|
||||
display: inline-block;
|
||||
margin-right: 0.25em;
|
||||
cursor: pointer;
|
||||
padding: 5px 10px;
|
||||
border: 1px solid rgba(255,255,255,0.5);
|
||||
background: rgba(0,0,0,0.2);
|
||||
}
|
||||
.controlplay a i {
|
||||
font-family: FontAwesome;
|
||||
position: relative;
|
||||
font-size: 1rem;
|
||||
line-height: 1;
|
||||
color: #FFF;
|
||||
vertical-align: middle;
|
||||
font-style: unset;
|
||||
}
|
||||
.controlplay .resume-slide i::before {
|
||||
content: "\f04b";
|
||||
}
|
||||
.controlplay .pause-slide i::before {
|
||||
content: "\f04c";
|
||||
}
|
||||
ul.button-mid .prev-button {
|
||||
transition: 0.4s;
|
||||
position: relative;
|
||||
float: left;
|
||||
left: 0.5rem;
|
||||
width: 2.5rem;
|
||||
height: 2.5rem;
|
||||
font-size: 2.2rem;
|
||||
color: #ffffff;
|
||||
background: rgba(0,0,0,0.2);
|
||||
text-align: center;
|
||||
line-height: 2.5rem;
|
||||
top: 50%;
|
||||
position: absolute;
|
||||
transform: translateY(-50%);
|
||||
z-index: 999;
|
||||
}
|
||||
ul.button-mid .next-button {
|
||||
float: right;
|
||||
transition: 0.4s;
|
||||
position: relative;
|
||||
right: 0.5rem;
|
||||
width: 2.5rem;
|
||||
height: 2.5rem;
|
||||
font-size: 2.2rem;
|
||||
color: #fff;
|
||||
background: rgba(0,0,0,0.2);
|
||||
text-align: center;
|
||||
line-height: 2.5rem;
|
||||
top: 50%;
|
||||
position: absolute;
|
||||
transform: translateY(-50%);
|
||||
z-index: 999;
|
||||
}
|
||||
.carousel_images_slide{
|
||||
padding: 3em;
|
||||
}
|
||||
.carousel_img_item img{
|
||||
cursor: pointer;
|
||||
}
|
||||
@media (max-width: 479px){
|
||||
.carousel_img_item:nth-child(-n+1){
|
||||
display: block;
|
||||
width: 100%;
|
||||
float: left;
|
||||
}
|
||||
.carousel_img_item{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@media (min-width: 480px){
|
||||
.carousel_img_item:nth-child(-n+2){
|
||||
display: block;
|
||||
width: 50%;
|
||||
float: left;
|
||||
}
|
||||
.carousel_img_item{
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px){
|
||||
.carousel_img_item:nth-child(-n+3){
|
||||
display: block;
|
||||
width: 33%;
|
||||
float: left;
|
||||
}
|
||||
.carousel_img_item{
|
||||
width: 33%;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1280px){
|
||||
.carousel_img_item:nth-child(-n+4){
|
||||
display: block;
|
||||
width: 25%;
|
||||
float: left;
|
||||
}
|
||||
.carousel_img_item{
|
||||
width: 25%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
(function($) {
|
||||
$('.pause-slide').click(function(){
|
||||
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
|
||||
});
|
||||
$('.resume-slide').click(function(){
|
||||
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume');
|
||||
});
|
||||
$('.next-button').off('click').on('click',function(){
|
||||
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next");
|
||||
})
|
||||
$('.prev-button').off('click').on('click',function(){
|
||||
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev");
|
||||
})
|
||||
window.active_slide = 0;
|
||||
$('.prev_img').off('click').on('click',function(){
|
||||
var carousel_images_slide = $('.carousel_images_slide');
|
||||
var carousel_images_slide_first_child = carousel_images_slide.find(">li").eq(active_slide);
|
||||
if(carousel_images_slide_first_child.length > 0){
|
||||
var content_size = Math.floor((carousel_images_slide.outerWidth() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.outerWidth(true));
|
||||
content_size = Math.max(content_size,1);
|
||||
if(carousel_images_slide.find(">li").length > content_size && active_slide > 0){
|
||||
active_slide -= content_size;
|
||||
carousel_images_slide.find(">li").css("display","none");
|
||||
for(var i = active_slide; i < active_slide + content_size;i++){
|
||||
carousel_images_slide.find(">li").eq(i).css("display","block");
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
$('.next_img').off('click').on('click',function(){
|
||||
var carousel_images_slide = $('.carousel_images_slide');
|
||||
var carousel_images_slide_first_child = carousel_images_slide.find(">li").eq(active_slide);
|
||||
if(carousel_images_slide_first_child.length > 0){
|
||||
var content_size = Math.floor((carousel_images_slide.outerWidth() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.outerWidth(true));
|
||||
content_size = Math.max(content_size,1);
|
||||
var li_length = carousel_images_slide.find(">li").length;
|
||||
if(li_length > content_size){
|
||||
active_slide += content_size;
|
||||
active_slide = Math.min(active_slide,li_length - 1);
|
||||
carousel_images_slide.find(">li").css("display","none");
|
||||
for(var i = active_slide; i < active_slide + content_size;i++){
|
||||
carousel_images_slide.find(">li").eq(i).css("display","block");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
$(".carousel_img_item img").off("click").on("click",function(){
|
||||
$(".carousel_images .cycle-slideshow").cycle($(this).index(".carousel_img_item img"));
|
||||
})
|
||||
$(document).ready(function(){
|
||||
$(".carousel_images .cycle-slideshow").cycle('pause');
|
||||
var carousel_image_block_width = $('.carousel_images').width();
|
||||
var heights = $(".event_carousel_slide").map(function(i,v){
|
||||
return $(v).height() * carousel_image_block_width / $(v).width();
|
||||
})
|
||||
var max_height = Math.max.apply(null,heights);
|
||||
$(".event_carousel_slide").each(function(i,v){
|
||||
$(v).height(max_height);
|
||||
})
|
||||
$(".carousel_images .cycle-slideshow").cycle('resume');
|
||||
$('.cycle-slideshow').on('cycle-after',function(){
|
||||
$(".active_slide").text($('.event_carousel_slide.cycle-slide-active').index());
|
||||
})
|
||||
})
|
||||
$(window).on("load",function(){
|
||||
$(".carousel_images .cycle-slideshow").cycle('pause');
|
||||
var carousel_image_block_width = $('.carousel_images').width();
|
||||
var heights = $(".event_carousel_slide").map(function(i,v){
|
||||
return $(v).height() * carousel_image_block_width / $(v).width();
|
||||
})
|
||||
var max_height = Math.max.apply(null,heights);
|
||||
$(".event_carousel_slide").each(function(i,v){
|
||||
$(v).height(max_height);
|
||||
})
|
||||
$(".carousel_images .cycle-slideshow").cycle('resume');
|
||||
})
|
||||
$(window).resize(function(){
|
||||
var carousel_images_slide = $('.carousel_images_slide');
|
||||
var carousel_images_slide_first_child = carousel_images_slide.find(">li").eq(active_slide);
|
||||
if(carousel_images_slide_first_child.length > 0){
|
||||
var content_size = Math.floor((carousel_images_slide.outerWidth() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.outerWidth(true));
|
||||
content_size = Math.max(content_size,1);
|
||||
carousel_images_slide.find(">li").css("display","none");
|
||||
var active_count = carousel_images_slide.find(">li").length - active_slide;
|
||||
if(active_count < content_size){
|
||||
active_slide -= (content_size - active_count);
|
||||
}
|
||||
active_slide = Math.max(active_slide,0);
|
||||
console.log(content_size)
|
||||
for(var i = active_slide; i < active_slide + content_size;i++){
|
||||
carousel_images_slide.find(">li").eq(i).css("display","block");
|
||||
}
|
||||
}
|
||||
var carousel_image_block_width = $('.carousel_images').width();
|
||||
$(".event_carousel_slide").css("height",'');
|
||||
var heights = $(".event_carousel_slide").map(function(i,v){
|
||||
return $(v).height() * carousel_image_block_width / $(v).width();
|
||||
})
|
||||
var max_height = Math.max.apply(null,heights);
|
||||
$(".event_carousel_slide").each(function(i,v){
|
||||
$(v).height(max_height);
|
||||
})
|
||||
})
|
||||
}(jQuery));
|
||||
</script>
|
|
@ -0,0 +1,13 @@
|
|||
<style>
|
||||
.carousel_image p{
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
<div class="carousel_images">
|
||||
<%data["event_carousel_images"].each do |event_carousel_image|%>
|
||||
<div class="carousel_image col-sm-6">
|
||||
<a href="<%=event_carousel_image["src"]%>" title="<%=event_carousel_image["description_text"]%>"><img src="<%=event_carousel_image["src"]%>" alt="<%=event_carousel_image["description_text"]%>"></a>
|
||||
<p><strong class="carousel__description"><%=event_carousel_image["description"]%></strong></p>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
|
@ -2,7 +2,7 @@
|
|||
require 'event_news_helper'
|
||||
data = action_data
|
||||
params = OrbitHelper.params
|
||||
page = Page.where(url:params['url']).first
|
||||
page = @page || Page.where(url:params['url']).first
|
||||
@ad_banner_location = 2
|
||||
@show_back_and_next_flag = 0
|
||||
if Page.instance_methods.include?(:select_option_items) && ModuleApp.instance_methods.include?(:show_option_items)
|
||||
|
@ -58,13 +58,7 @@
|
|||
content = ''
|
||||
end
|
||||
end
|
||||
ad_banner_content = render_ad_banner(data['event_carousel_images'],data['data'])
|
||||
%>
|
||||
<style type="text/css">
|
||||
.carousel_images{
|
||||
<%= data['data']['carousel_display_style'] %>
|
||||
}
|
||||
</style>
|
||||
<%= stylesheet_link_tag 'event_news_front.css' %>
|
||||
<% if @show_back_and_next_flag!=0 %>
|
||||
<style type="text/css">
|
||||
|
@ -94,13 +88,13 @@
|
|||
<% end %>
|
||||
|
||||
<% if @ad_banner_location==1 %>
|
||||
<%= ad_banner_content %>
|
||||
<%= data["data"]["carousel_html"] %>
|
||||
<% end %>
|
||||
|
||||
<%= render_view %>
|
||||
|
||||
<% if @ad_banner_location==2 %>
|
||||
<%= ad_banner_content %>
|
||||
<%= data["data"]["carousel_html"] %>
|
||||
<% end %>
|
||||
|
||||
<% if @show_back_and_next_flag==2 %>
|
||||
|
@ -126,113 +120,5 @@
|
|||
// Links
|
||||
hideEmptyEl($('.s-annc__link-title'), $('.s-annc__related-link'));
|
||||
$("img[src='']").remove();
|
||||
$('.pause-slide').click(function(){
|
||||
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
|
||||
$(this).addClass('active');
|
||||
$(this).parents('.carousel_images').find('.resume-slide').removeClass('active');
|
||||
});
|
||||
$('.resume-slide').click(function(){
|
||||
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume');
|
||||
$(this).addClass('active');
|
||||
$(this).parents('.carousel_images').find('.pause-slide').removeClass('active');
|
||||
});
|
||||
$('.next-button').off('click').on('click',function(){
|
||||
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next");
|
||||
})
|
||||
$('.prev-button').off('click').on('click',function(){
|
||||
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev");
|
||||
})
|
||||
window.active_slide = 0;
|
||||
$('.prev_img').off('click').on('click',function(){
|
||||
var carousel_images_slide = $('.carousel_images_slide');
|
||||
var carousel_images_slide_first_child = carousel_images_slide.find(">li").eq(active_slide);
|
||||
if(carousel_images_slide_first_child.length > 0){
|
||||
var content_size = Math.floor((carousel_images_slide.outerWidth() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.outerWidth(true));
|
||||
content_size = Math.max(content_size,1);
|
||||
if(carousel_images_slide.find(">li").length > content_size && active_slide > 0){
|
||||
active_slide -= content_size;
|
||||
carousel_images_slide.find(">li").css("display","none");
|
||||
for(var i = active_slide; i < active_slide + content_size;i++){
|
||||
carousel_images_slide.find(">li").eq(i).css("display","block");
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
$('.next_img').off('click').on('click',function(){
|
||||
var carousel_images_slide = $('.carousel_images_slide');
|
||||
var carousel_images_slide_first_child = carousel_images_slide.find(">li").eq(active_slide);
|
||||
if(carousel_images_slide_first_child.length > 0){
|
||||
var content_size = Math.floor((carousel_images_slide.outerWidth() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.outerWidth(true));
|
||||
content_size = Math.max(content_size,1);
|
||||
var li_length = carousel_images_slide.find(">li").length;
|
||||
if(li_length > content_size){
|
||||
active_slide += content_size;
|
||||
active_slide = Math.min(active_slide,li_length - 1);
|
||||
carousel_images_slide.find(">li").css("display","none");
|
||||
for(var i = active_slide; i < active_slide + content_size;i++){
|
||||
carousel_images_slide.find(">li").eq(i).css("display","block");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
$(".carousel_img_item img").off("click").on("click",function(){
|
||||
$(".carousel_images .cycle-slideshow").cycle($(this).index(".carousel_img_item img"));
|
||||
})
|
||||
$(document).ready(function(){
|
||||
$(".carousel_images .cycle-slideshow").cycle('pause');
|
||||
var carousel_image_block_width = $('.carousel_images').width();
|
||||
var heights = $(".event_carousel_slide").map(function(i,v){
|
||||
return $(v).height() * carousel_image_block_width / $(v).width();
|
||||
})
|
||||
var max_height = Math.max.apply(null,heights);
|
||||
$(".event_carousel_slide").each(function(i,v){
|
||||
$(v).height(max_height);
|
||||
})
|
||||
$(".carousel_images .cycle-slideshow").cycle('resume');
|
||||
$('.carousel_images .resume-slide').addClass('active');
|
||||
$('.cycle-slideshow').on('cycle-after',function(){
|
||||
$(".active_slide").text($('.event_carousel_slide.cycle-slide-active').index());
|
||||
})
|
||||
})
|
||||
$(window).on("load",function(){
|
||||
$(".carousel_images .cycle-slideshow").cycle('pause');
|
||||
var carousel_image_block_width = $('.carousel_images').width();
|
||||
var heights = $(".event_carousel_slide").map(function(i,v){
|
||||
return $(v).height() * carousel_image_block_width / $(v).width();
|
||||
})
|
||||
var max_height = Math.max.apply(null,heights);
|
||||
$(".event_carousel_slide").each(function(i,v){
|
||||
$(v).height(max_height);
|
||||
})
|
||||
$(".carousel_images .cycle-slideshow").cycle('resume');
|
||||
})
|
||||
$(window).resize(function(){
|
||||
var carousel_images_slide = $('.carousel_images_slide');
|
||||
var carousel_images_slide_first_child = carousel_images_slide.find(">li").eq(active_slide);
|
||||
if(carousel_images_slide_first_child.length > 0){
|
||||
var content_size = Math.floor((carousel_images_slide.outerWidth() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.outerWidth(true));
|
||||
content_size = Math.max(content_size,1);
|
||||
carousel_images_slide.find(">li").css("display","none");
|
||||
var active_count = carousel_images_slide.find(">li").length - active_slide;
|
||||
if(active_count < content_size){
|
||||
active_slide -= (content_size - active_count);
|
||||
}
|
||||
active_slide = Math.max(active_slide,0);
|
||||
console.log(content_size)
|
||||
for(var i = active_slide; i < active_slide + content_size;i++){
|
||||
carousel_images_slide.find(">li").eq(i).css("display","block");
|
||||
}
|
||||
}
|
||||
var carousel_image_block_width = $('.carousel_images').width();
|
||||
$(".event_carousel_slide").css("height",'');
|
||||
var heights = $(".event_carousel_slide").map(function(i,v){
|
||||
return $(v).height() * carousel_image_block_width / $(v).width();
|
||||
})
|
||||
var max_height = Math.max.apply(null,heights);
|
||||
$(".event_carousel_slide").each(function(i,v){
|
||||
$(v).height(max_height);
|
||||
})
|
||||
})
|
||||
}(jQuery));
|
||||
</script>
|
|
@ -4,6 +4,12 @@ en:
|
|||
event_news_mod:
|
||||
event_news_mod: Event News
|
||||
event_news:
|
||||
carousel_image_types:
|
||||
default: Default
|
||||
carousel: Carousel
|
||||
album: Album
|
||||
default_carousel_image_type: Default carousel image type
|
||||
carousel_image_type: Carousel image type
|
||||
read_from_cache: "Read from cache!"
|
||||
manually_sort: Manually Sort
|
||||
enable_manually_sort: Enable Manually Sort
|
||||
|
|
|
@ -4,6 +4,12 @@ zh_tw:
|
|||
event_news_mod:
|
||||
event_news_mod: 活動公告
|
||||
event_news:
|
||||
carousel_image_types:
|
||||
default: 預設
|
||||
carousel: 輪播
|
||||
album: 相本排版
|
||||
default_carousel_image_type: 預設輪播樣式
|
||||
carousel_image_type: 預設輪播樣式
|
||||
read_from_cache: "從暫存中讀取!"
|
||||
manually_sort: 手動排序
|
||||
enable_manually_sort: 開啟手動排序
|
||||
|
|
|
@ -125,11 +125,12 @@ module EventNewsMod
|
|||
widget_methods ["widget","random_event_news_widget", "tag_cloud"]
|
||||
widget_settings [{"data_count"=>30}]
|
||||
taggable "EventNews"
|
||||
hashtaggable "EventNews"
|
||||
categorizable
|
||||
authorizable
|
||||
frontend_enabled
|
||||
feeds_url "/xhr/event_news/feeds"
|
||||
feeds_time_field (EventNewsHelper.is_postdate_sort_first ? ['postdate', 'event_date'] : ['event_date', 'postdate'])
|
||||
feeds_time_field (::EventNewsHelper.is_postdate_sort_first ? ['postdate', 'event_date'] : ['event_date', 'postdate'])
|
||||
data_count 1..30
|
||||
begin
|
||||
show_options data
|
||||
|
|
Loading…
Reference in New Issue