This commit is contained in:
BoHung Chiu 2021-05-03 10:49:05 +08:00
parent 3fd093a4a9
commit f2ed3e74f4
23 changed files with 1042 additions and 387 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 KiB

After

Width:  |  Height:  |  Size: 566 KiB

View File

@ -11,3 +11,12 @@
.response-content { .response-content {
justify-self: auto; justify-self: auto;
} }
.response-content {
justify-self: auto;
}
.response-content {
justify-self: auto;
}
.response-content {
justify-self: auto;
}

View File

@ -88,6 +88,9 @@ $border-width: 0.25em;
.response-content { .response-content {
justify-self: auto; justify-self: auto;
} }

View File

@ -1,4 +1,4 @@
<div class="w-ba-banner ba-banner-widget-1"> <div class="w-ba-banner ad-banner-widget-1 ba-banner-widget-1">
<div class="w-ba-banner__wrap cycle-slideshow" <div class="w-ba-banner__wrap cycle-slideshow"
data-list="images" data-list="images"
data-level="0" data-level="0"
@ -28,9 +28,9 @@
</div> </div>
</div> </div>
<div class="ad-overlay w-ad-banner__overlay_{{subpart-id}}"></div> <div class="ad-overlay w-ba-banner__caption w-ad-banner__caption w-ad-banner__overlay_{{subpart-id}}"></div>
<div class="w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}"></div> <div class="w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}"></div>
<ul class="controlplay"><a class="resume-slide" title = "<%= (I18n.locale.to_s =="zh_tw") ? "繼續播放" : "resume" %>"><i></i></a><a class="pause-slide" title = "<%= (I18n.locale.to_s =="zh_tw") ? "暫停播放" : "pause"%>"><i></i></a></ul> <ul class="controlplay"><a class="resume-slide active" title = "<%= (I18n.locale.to_s =="zh_tw") ? "繼續播放" : "resume" %>"><i></i></a><a class="pause-slide" title = "<%= (I18n.locale.to_s =="zh_tw") ? "暫停播放" : "pause"%>"><i></i></a></ul>
<ul class="button-mid"> <ul class="button-mid">
<i class="fa fa-angle-left prev-button" aria-hidden="true" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>"></i> <i class="fa fa-angle-left prev-button" aria-hidden="true" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>"></i>
<i class="fa fa-angle-right next-button" aria-hidden="true" title = "<%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %>"></i> <i class="fa fa-angle-right next-button" aria-hidden="true" title = "<%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %>"></i>
@ -38,11 +38,15 @@
</div> </div>
<script> <script>
var flag = 1; var flag = 1;
$('.pause-slide').click(function(){ $('.pause-slide').off('click').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause'); $(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
$(this).addClass('active')
$(this).parents('.controlplay').eq(0).find('.resume-slide').removeClass('active')
}); });
$('.resume-slide').click(function(){ $('.resume-slide').off('click').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume'); $(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume');
$(this).addClass('active')
$(this).parents('.controlplay').eq(0).find('.pause-slide').removeClass('active')
}); });
$('.next-button').off('click').on('click',function(){ $('.next-button').off('click').on('click',function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next"); $(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next");
@ -53,3 +57,11 @@
}) })
</script> </script>
<style type="text/css">
.controlplay .resume-slide.active i{
color: #32D9C3;
}
.controlplay .pause-slide.active i{
color: #ff4500;
}
</style>

View File

@ -1,8 +1,7 @@
<div class="w-ba-banner ba-banner-widget-2 ba-banner-widget-youtube"> <div class="w-ba-banner ba-banner-widget-1 ba-banner-widget-youtube">
<div class="w-ba-banner__wrap cycle-slideshow" <div class="w-ba-banner__wrap cycle-slideshow"
data-list="images" data-list="images"
data-level="0" data-level="0"
data-cycle-timeout="10000"
data-cycle-slides=".w-ba-banner__slide" data-cycle-slides=".w-ba-banner__slide"
data-cycle-log="false" data-cycle-log="false"
data-overlay=".w-ad-banner__overlay_{{subpart-id}}" data-overlay=".w-ad-banner__overlay_{{subpart-id}}"
@ -11,25 +10,29 @@
data-cycle-speed="{{speed}}" data-cycle-speed="{{speed}}"
data-cycle-timeout="{{timeout}}" data-cycle-timeout="{{timeout}}"
data-cycle-fx="{{ad_fx}}" data-cycle-fx="{{ad_fx}}"
data-pager=".w-ba-banner__pager-2 .banner_caption_{{subpart-id}}" data-pager=".banner_caption_{{subpart-id}}"
data-pager-template="<li><button></button></li>" data-pager-template="<li><button></button></li>"
data-pager-active-class="active-slide" data-pager-active-class="active-slide"
data-cycle-youtube="true" data-cycle-youtube="true"
data-cycle-youtube-autostart="false" data-cycle-youtube-autostart="false"
data-cycle-swipe=true data-cycle-swipe="true"
data-cycle-prev=".banner_prev" data-cycle-prev=".banner_prev"
data-cycle-next=".banner_next" data-cycle-next=".banner_next"
data-cycle-pause-on-hover="true" data-cycle-pause-on-hover="true"
style="padding-bottom: 56.25%;"
> >
{{html}} {{html}}
</div> </div>
<ul class="w-ba-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul> <div class="ad-overlay w-ad-banner__overlay_{{subpart-id}}"></div>
<div class="w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}"></div>
<ul class="controlplay"><a class="resume-slide active" title = "<%= (I18n.locale.to_s =="zh_tw") ? "繼續播放" : "resume" %>"><i></i></a><a class="pause-slide" title = "<%= (I18n.locale.to_s =="zh_tw") ? "暫停播放" : "pause"%>"><i></i></a></ul>
<ul class="button-mid"> <ul class="button-mid">
<i class="fa fa-angle-left prev-button" aria-hidden="true" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>"></i> <i class="fa fa-angle-left prev-button" aria-hidden="true" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>"></i>
<i class="fa fa-angle-right next-button" aria-hidden="true" title = "<%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %>"></i> <i class="fa fa-angle-right next-button" aria-hidden="true" title = "<%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %>"></i>
</ul> </ul>
</div> </div>
</div>
<script type="text/javascript"> <script type="text/javascript">
if (typeof ad_banners_count === 'undefined'){ if (typeof ad_banners_count === 'undefined'){
var ad_banners_count = 0; var ad_banners_count = 0;
@ -65,13 +68,45 @@ if (typeof onYouTubeIframeAPIReady !== 'function'){
} }
function onPlayerStateChange(event){ function onPlayerStateChange(event){
var iframe = $(event.target.getIframe()), var iframe = $(event.target.h),
cyclediv = iframe.parents("div.cycle-slideshow"); cyclediv = iframe.parents("div.cycle-slideshow");
var widget = cyclediv.parents('.ba-banner-widget-youtube')
if(event.data == YT.PlayerState.PLAYING || event.data == YT.PlayerState.BUFFERING){ if(event.data == YT.PlayerState.PLAYING || event.data == YT.PlayerState.BUFFERING){
cyclediv.cycle("pause"); cyclediv.cycle("pause");
widget.find('.banner-pager,.controlplay,.button-mid,.ad-overlay').css('visibility','hidden')
}else if(event.data == YT.PlayerState.PAUSED || event.data == YT.PlayerState.ENDED){ }else if(event.data == YT.PlayerState.PAUSED || event.data == YT.PlayerState.ENDED){
cyclediv.cycle("resume"); cyclediv.cycle("resume");
widget.find('.banner-pager,.controlplay,.button-mid,.ad-overlay').css('visibility','')
} }
} }
$(document).ready(function(){
window.onYouTubePlayerAPIReady = function() {
onYouTubeIframeAPIReady();
};
$('.pause-slide').off('click').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
$(this).addClass('active')
$(this).parents('.controlplay').eq(0).find('.resume-slide').removeClass('active')
});
$('.resume-slide').off('click').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume');
$(this).addClass('active')
$(this).parents('.controlplay').eq(0).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");
})
})
} }
</script> </script>
<style type="text/css">
.controlplay .resume-slide.active i{
color: #32D9C3;
}
.controlplay .pause-slide.active i{
color: #ff4500;
}
</style>

View File

@ -0,0 +1,86 @@
<div class="w-annc widget-announcement-18">
<div class="w-annc__more-wrap clearfix">
<h2 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h2>
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
<ul class="w-annc__list row" data-level="0" data-list="announcements">
<li class="w-annc__item col-md-4">
<div class="w-annc__img-wrap">
<a href="{{link_to_show}}" title="{{title}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</a>
</div>
<div class="w-annc__content-wrap">
<h4 class="w-annc__entry-title">
<a class="w-annc__title" href="{{link_to_show}}">{{title}}</a>
</h4>
<div class="w-annc__subtitle">{{subtitle}}</div>
<div class="w-annc_read_more"><a href="{{link_to_show}}" title="{{title}}">{{read_more_text}}</a></div>
</div>
</li>
</ul>
</div>
<style type="text/css">
.widget-announcement-18 [data-list="announcements"] li > *{
background: #ffffff;
width: 100%;
float: left;
}
.widget-announcement-18 [data-list="announcements"] .w-annc__img{
width: 100%;
}
.widget-announcement-18 [data-list="announcements"] .w-annc__content-wrap{
padding: 0 1em;
}
.widget-announcement-18 .w-annc__title {
line-height: 1.3;
font-size: 1.2rem;
}
.widget-announcement-18 .w-annc__widget-title {
float: left;
}
.widget-announcement-18 .w-annc__more {
margin-top: 1.5em;
}
.widget-announcement-18 .w-annc__list > .w-annc__item:nth-child(3n+1) {
clear: both;
}
.widget-announcement-18 li.w-annc__item{
float: left;
}
.widget-announcement-18 .w-annc__img-wrap {
padding: 0 0 1em 0;
}
.w-annc_read_more{
display: inline-block;
padding: 1em;
}
.w-annc_read_more a{
float: left;
background: #4a97c2;
color: #ffffff;
padding: 0 0.5em;
border-radius: 0.3em;
border: 0.5em solid #4a97c2;
}
.w-annc__subtitle {
padding-bottom: 0.3em;
}
.w-annc_read_more a:hover{
background: #327397;
border: 0.5em solid #327397;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$("[data-subpart-id=\"{{subpart-id}}\"] .w-annc__subtitle").each(function(i,v){
var subtitle = $(v).text();
if(subtitle.length > 15){
$(v).text(subtitle.slice(0,15) + "...");
}
})
})
</script>

View File

@ -273,6 +273,14 @@
"en": "17. Simple Title List-2 (widget-title, postdate, status, title), including search" "en": "17. Simple Title List-2 (widget-title, postdate, status, title), including search"
}, },
"thumbnail": "annc_widget11_thumbs.png" "thumbnail": "annc_widget11_thumbs.png"
},
{
"filename": "annc_widget18",
"name": {
"zh_tw": "18. 三欄圖文精簡版 ( 模組標題, 標題, 副標題(只顯示15字) )",
"en": "18. 3-Column Standard Image + Text Lite (widget-title, title, subtitle(only display 15 words))"
},
"thumbnail": "annc_widget4_thumbs.png"
} }
] ]
} }

View File

@ -44,9 +44,169 @@
</ul> </ul>
</article> </article>
<div class="carousel_images" style="{{carousel_display_style}}">
<div class="w-ba-banner ba-banner-widget-1">
<div class="w-ba-banner__wrap cycle-slideshow"
data-list="bulletin_carousel_images"
data-level="0"
data-cycle-slides=".bulletin_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"
>
<div class="w-ba-banner__slide bulletin_carousel_slide"
data-cycle-title="{{description_text}}"
>
<img class="w-ba-banner__image banner-responsive" src="{{src}}" alt="{{description_text}}">
<div class="ad-overlay w-ad-banner__overlay bulletin_carousel__overlay">
<p><strong class="carousel__description">{{description}}</strong></p>
</div>
<div class="transitionfade"></div>
</div>
</div>
<ul class="controlplay"><a class="resume-slide" title = "{{resume_btn_title}}"><i></i></a><a class="pause-slide" title = "{{pause_btn_title}}"><i></i></a></ul>
<ul class="button-mid">
<i class="fa fa-angle-left prev-button" aria-hidden="true" title = "{{prev_btn_title}}"></i>
<i class="fa fa-angle-right next-button" aria-hidden="true" title = "{{next_btn_title}}"></i>
</ul>
</div>
<div style="position: relative;">
<h4><span class="active_slide">1</span>/{{carousel_count}}</h4>
<ul class="carousel_images_slide w-annc__list row list-unstyled" data-level="0" data-list="bulletin_carousel_images">
<li class="carousel_img_item col-sm-3">
<div class="carousel_img-wrap">
<img class="carousel_img" src="{{src}}" alt="{{description_text}}">
</div>
</li>
</ul>
<ul class="button-mid">
<i class="fa fa-angle-left prev-button prev_img" aria-hidden="true" title = "{{prev_btn_title}}"></i>
<i class="fa fa-angle-right next-button next_img" aria-hidden="true" title = "{{next_btn_title}}"></i>
</ul>
</div>
</div>
{{link_to_edit}} {{link_to_edit}}
<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> <script>
(function($) { (function($) {
@ -67,6 +227,108 @@
hideEmptyEl($('.s-annc__link-title'), $('.s-annc__related-link')); hideEmptyEl($('.s-annc__link-title'), $('.s-annc__related-link'));
$("img[src='']").remove(); $("img[src='']").remove();
$('.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.width() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.width());
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.width() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.width());
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 = $(".bulletin_carousel_slide").map(function(i,v){
return $(v).height() * carousel_image_block_width / $(v).width();
})
var max_height = Math.max.apply(null,heights);
$(".bulletin_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($('.bulletin_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 = $(".bulletin_carousel_slide").map(function(i,v){
return $(v).height() * carousel_image_block_width / $(v).width();
})
var max_height = Math.max.apply(null,heights);
$(".bulletin_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.width() - Number.parseInt(carousel_images_slide.css('font-size')) * 3) / carousel_images_slide_first_child.width());
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();
$(".bulletin_carousel_slide").css("height",'');
var heights = $(".bulletin_carousel_slide").map(function(i,v){
return $(v).height() * carousel_image_block_width / $(v).width();
})
var max_height = Math.max.apply(null,heights);
$(".bulletin_carousel_slide").each(function(i,v){
$(v).height(max_height);
})
})
}(jQuery)); }(jQuery));
</script> </script>

View File

@ -0,0 +1,60 @@
<div class="i-archive index-archive-5">
<h3 class="i-archive-title">
<span>{{page-title}}</span>
</h3>
<div class="i-archive__list list-unstyled" id="index-archive-group" data-list="categories" data-level="0">
<h4 class="i-archive__category-title">{{category-title}}</h4>
<div class="i-items">
<div class="thead row">
<div class="col-sm-2 date-thead">上傳日期</div>
<div class="col-sm-3 title-thead">標題</div>
<div class="col-sm-3 description-thead">{{description-head}}</div>
<div class="col-sm-2 file-thead">檔案下載</div>
</div>
<div class="tbody">
<div class="i-archive__category-list list-unstyled" data-list="archives" data-level="1">
<div class="archive-items clearfix">
<div class="date col-sm-2">{{created_at}}</div>
<div class="head col-sm-3">
{{archive-title}}
<span class="i-archive__status-wrap" data-list="statuses" data-level="2">
<span class="i-archive__status label status {{status-class}}">{{status}}</span>
</span>
</div>
<div class="description col-sm-3" style="border-right: 0.05em solid #333;">{{description}}</div>
<div class="i-archive__file-list col-sm-2" data-list="files" data-level="2">
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
if( window.location.href.indexOf('/en/') > -1 ) {
$('.date-thead').replaceWith('<div class="col-sm-2 date-thead-en">Updated At</div>')
$('.title-thead').replaceWith('<div class="col-sm-7 title-thead-en">Title</div>')
$('.file-thead').replaceWith('<div class="col-sm-3 file-thead-en">Download file</div>')
}
$(document).ready(function(){
if(window.innerWidth >= 768){
$(".archive-items .date").each(function(i,d){
$(d).parent().eq(0).children().css("min-height",$(d).parent().height());
})
}else{
$(".archive-items >").css("min-height","");
}
})
$(window).resize(function(){
if(window.innerWidth >= 768){
$(".archive-items .date").each(function(i,d){
$(d).parent().eq(0).children().css("min-height",$(d).parent().height());
})
}else{
$(".archive-items >").css("min-height","");
}
})
</script>

View File

@ -0,0 +1,48 @@
<div class="i-archive index-archive-6">
<h3 class="i-archive-title">
<span>{{page-title}}</span>
</h3>
<div class="i-archive__list list-unstyled" id="index-archive-group" data-list="categories" data-level="0">
<h4 class="i-archive__category-title">{{category-title}}</h4>
<div class="i-items">
<div class="thead row">
<div class="col-sm-2 date-thead">上傳日期</div>
<div class="col-sm-3 title-thead">標題</div>
<div class="col-sm-3 description-thead">{{description-head}}</div>
<div class="col-sm-2 file-thead">檔案下載</div>
</div>
<div class="tbody">
<div class="i-archive__category-list list-unstyled" data-list="archives" data-level="1">
<div class="archive-items clearfix">
<div class="date col-sm-2">{{created_at}}</div>
<div class="head col-sm-3">
<dl class="i-archive__file" data-list="files" data-level="2">
<div class="file-name">
<a class="i-archive__file-name" href="{{file-url}}" target="_blank" title="{{file-name}}">{{file-name}}</a>
<span class="i-archive__status-wrap" data-list="statuses" data-level="2">
<span class="i-archive__status label status {{status-class}}">{{status}}</span>
</span>
</div>
</dl>
</div>
<div class="description col-sm-3">{{description}}</div>
<div class="i-archive__file-list col-sm-2" data-list="files" data-level="2">
<div class="file-item">
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
if( window.location.href.indexOf('/en/') > -1 ) {
$('.date-thead').replaceWith('<div class="col-sm-2 date-thead-en">Updated At</div>')
$('.title-thead').replaceWith('<div class="col-sm-7 title-thead-en">Title</div>')
$('.file-thead').replaceWith('<div class="col-sm-3 file-thead-en">Download file</div>')
}
</script>

View File

@ -1,70 +1 @@
{ {"frontend":[{"filename":"archive_index1","name":{"zh_tw":"1. 列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )","en":"1. List (widget-title, category, filename, download link)"},"thumbnail":"ar1.png"},{"filename":"archive_index2","name":{"zh_tw":"2. 手風琴式列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )","en":"2. Accordion list (widget-title, category, filename, download link)"},"thumbnail":"ar2.png"},{"filename":"archive_index3","name":{"zh_tw":"3. 列表( 無檔案名稱 ) ( 模組標題, 類別標題, 下載連結 )","en":"3. List(no filename) (widget-title, category, download link)"},"thumbnail":"ar3.png"},{"filename":"archive_index4","name":{"zh_tw":"4. 手風琴式列表( 無檔案名稱 ( 模組標題, 類別標題, 下載連結 )","en":"4. Accordion list(no filename) (widget-title, category, download link)"},"thumbnail":"ar4.png"},{"filename":"archive_index5","name":{"zh_tw":"5. 表格列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )","en":"5. Table list (widget-title, category, filename, download link)"},"thumbnail":"ar5.png"},{"filename":"archive_index6","name":{"zh_tw":"6. 表格列表 ( 模組標題, 檔案名稱, 下載連結 )","en":"6. Table list (widget-title, filename, download link)"},"thumbnail":"ar5.png"},{"filename":"archive_index7","name":{"zh_tw":"7. 表格列表 ( 模組標題, 類別標題, 檔案名稱, 檔案簡介, 下載連結 )","en":"7. Table list (widget-title, category, filename, download link)"},"thumbnail":"ar5.png"},{"filename":"archive_index8","name":{"zh_tw":"8. 表格列表 ( 模組標題, 檔案名稱, 檔案簡介, 下載連結 )","en":"8. Table list (widget-title, filename, download link)"},"thumbnail":"ar5.png"}],"widgets":[{"filename":"archive_widget1","name":{"zh_tw":"1. 列表 ( 模組標題, 類別標題, 檔案名稱, 下載頁面連結 )","en":"1. List (widget-title, category, link of download page)"},"thumbnail":"thumb.png"},{"filename":"archive_widget2","name":{"zh_tw":"2. 手風琴式列表 ( 模組標題, 類別標題, 下載頁面連結 )","en":"2. Accordion list (widget-title, category, link of download page)"},"thumbnail":"thumb.png"}]}
"frontend": [
{
"filename" : "archive_index1",
"name" : {
"zh_tw" : "1. 列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )",
"en" : "1. List (widget-title, category, filename, download link)"
},
"thumbnail" : "ar1.png"
},
{
"filename" : "archive_index2",
"name" : {
"zh_tw" : "2. 手風琴式列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )",
"en" : "2. Accordion list (widget-title, category, filename, download link)"
},
"thumbnail" : "ar2.png"
},
{
"filename" : "archive_index3",
"name" : {
"zh_tw" : "3. 列表( 無檔案名稱 ) ( 模組標題, 類別標題, 下載連結 )",
"en" : "3. List(no filename) (widget-title, category, download link)"
},
"thumbnail" : "ar3.png"
},
{
"filename" : "archive_index4",
"name" : {
"zh_tw" : "4. 手風琴式列表( 無檔案名稱 ( 模組標題, 類別標題, 下載連結 )",
"en" : "4. Accordion list(no filename) (widget-title, category, download link)"
},
"thumbnail" : "ar4.png"
},
{
"filename" : "archive_index5",
"name" : {
"zh_tw" : "5. 表格列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )",
"en" : "5. Table list (widget-title, category, filename, download link)"
},
"thumbnail" : "ar5.png"
},
{
"filename" : "archive_index6",
"name" : {
"zh_tw" : "6. 表格列表 ( 模組標題, 檔案名稱, 下載連結 )",
"en" : "6. Table list (widget-title, filename, download link)"
},
"thumbnail" : "ar5.png"
}
],
"widgets" : [
{
"filename" : "archive_widget1",
"name" : {
"zh_tw" : "1. 列表 ( 模組標題, 類別標題, 檔案名稱, 下載頁面連結 )",
"en" : "1. List (widget-title, category, link of download page)"
},
"thumbnail" : "thumb.png"
},
{
"filename" : "archive_widget2",
"name" : {
"zh_tw" : "2. 手風琴式列表 ( 模組標題, 類別標題, 下載頁面連結 )",
"en" : "2. Accordion list (widget-title, category, link of download page)"
},
"thumbnail" : "thumb.png"
}
]
}

View File

@ -12,6 +12,7 @@
</h4> </h4>
<section class="post"> <section class="post">
<p>{{answer}}</p> <p>{{answer}}</p>
<div data-list="qa_files" data-level="1"><div><a href="{{file_url}}" target="_blank">{{file_title}}</a></div></div>
</section> </section>
</li> </li>
</ul> </ul>

View File

@ -0,0 +1,38 @@
<div class="widget-gallery gallery card-group widget4 no-print">
<h3 class="widget-title">
<span>{{widget-title}}</span>
</h3>
<link rel="stylesheet" type="text/css" href="/assets/gallery_card.css">
<div class="row widget-content" data-level="0" data-list="images">
<div class="card card-flip h-100">
<div class="card-front">
<div class="card-body" style="padding:0;">
<img
srcset="
{{thumb-large-src}} 1024w,
{{thumb-src}} 768w"
src="{{thumb-src}}"
alt="{{alt_title}}"
>
<div class="card-footer">
<h3 class="card-title">{{image_short_description}}</h3>
</div>
</div>
</div>
<div class="card-back">
<div class="card-body" style="background-color: {{album_color}};color: {{album_card_text_color}};">
<h3 class="card-title">{{image_short_description}}</h3>
{{image_description}}
<div class="card-button-group">
<a href="{{link_to_show}}" class="btn btn-secondary view ">
<i class="fa fa-link" aria-hidden="true"></i>
</a>
<a href="{{src}}" data-toggle="lightbox" data-gallery="gallery" class="btn btn-secondary preview" data-title="{{alt_title}}" data-type="image">
<i class="fa fa-eye" aria-hidden="true"></i>
</a>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,72 @@
<div class="widget-gallery gallery widget5 no-print">
<h3 class="widget-title">
<span>{{widget-title}}</span>
</h3>
<% OrbitHelper.render_css_in_head(["theater.css"]) %>
<%= javascript_include_tag "jquery.touchSwipe.min" %>
<%= javascript_include_tag "theater-widget" %>
<% OrbitHelper.render_meta_tags([{"name" => "mobile-web-app-capable","content" => "yes"},{"name" => "apple-mobile-web-app-status-bar-style","content" => "black-translucent"}]) %>
<div id="gallery-theater-stage">
<div class="show-gallery-2 gallery" style="margin-top: 2.4em;">
<div class="gallery-loader">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
<div class="gallery-actions">
<div class="gallery-show-original gallery-actions-btn">
<a title="<%= t('gallery.show_original_image') %>" href="/uploads/album_image/file/606574f19bb8189e640000ac/49b36_245.jpg"><i class="fa fa-image"></i></a>
</div>
<div class="gallery-toggle-desc gallery-actions-btn">
<i class="fa fa-comment"></i>
</div>
<div class="gallery-theme-switch gallery-actions-btn">
<i class="fa fa-circle"></i>
</div>
<div class="gallery-close gallery-actions-btn">
<i class="fa fa-times"></i>
</div>
</div>
<div class="image-container" id="image-container">
</div>
<div class="gallery-thumb-toggle gallery-thumb-line">
<i class="fa fa-angle-double-up"></i>
</div>
<div class="gallery-thumb-container">
<div class="gallery-thumb-navs show">
<div class="gallery-thumb-prev gallery-thumb-nav">
<i class="fa fa-arrow-circle-o-left"></i>
</div>
<div class="gallery-thumb-next gallery-thumb-nav">
<i class="fa fa-arrow-circle-o-right"></i>
</div>
</div>
<ul class="gallery-thumb-wrap" data-level="0" data-list="images">
<li class="gallery-item" data-index="{{i}}">
<a style="cursor: pointer;">
<img class="gallery-thumb" src="{{thumb-src}}" data-theater-url="{{theater-src}}" data-link="{{src}}" alt="{{alt_title}}">
</a>
</li>
</ul>
</div>
<div class="gallery-img-desc">
<div class="gallery-img-desc-inner">
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
if(typeof Modernizr == "undefined"){
var script = $("<script>");
script.attr("src","/assets/modernizr.js");
$("head").append(script);
}
</script>
</div>

View File

@ -0,0 +1,32 @@
<div class="index-gallery gallery card-group index5">
<h1 class="index-title">
<span>{{page-title}}</span>
</h1>
<link rel="stylesheet" type="text/css" href="/assets/gallery_card.css">
<div class="row" data-level="0" data-list="albums">
<div class="card card-flip h-100">
<div class="card-front">
<div class="card-body" style="padding:0;">
<img
src="{{thumb-src}}"
alt="{{alt_title}}"
>
<div class="card-footer">
<h3 class="card-title">{{album-name}}</h3>
</div>
</div>
</div>
<div class="card-back">
<div class="card-body" style="background-color: {{album_color}};color: {{album_card_text_color}};">
<h3 class="card-title">{{album-name}}</h3>
<div class="card-button-group">
<a href="{{link_to_show}}" class="btn btn-secondary view ">
<i class="fa fa-link" aria-hidden="true"></i>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
{{pagination_goes_here}}

View File

@ -31,6 +31,14 @@
"en" : "4. Thumbnail ( gallery thumbnail, page navigation )" "en" : "4. Thumbnail ( gallery thumbnail, page navigation )"
}, },
"thumbnail" : "thumb.png" "thumbnail" : "thumb.png"
},
{
"filename" : "gallery_index5",
"name" : {
"zh_tw" : "5. 卡片",
"en" : "5. Card"
},
"thumbnail" : "thumb.png"
} }
], ],
"widgets" : [ "widgets" : [
@ -45,8 +53,32 @@
{ {
"filename" : "gallery_widget2", "filename" : "gallery_widget2",
"name" : { "name" : {
"zh_tw" : "2. 相本排版", "zh_tw" : "2. 相本排版 ( 模組標題, 圖片 )",
"en" : "2. Thumbnail" "en" : "2. Thumbnail (widget-title, image)"
},
"thumbnail" : "thumb.png"
},
{
"filename" : "gallery_widget3",
"name" : {
"zh_tw" : "3. 單本相簿跑馬燈 ( 圖片 )",
"en" : "3. Single Picture With Carousel Effect (image)"
},
"thumbnail" : "thumb.png"
},
{
"filename" : "gallery_widget4",
"name" : {
"zh_tw" : "4. 卡片",
"en" : "4. Card"
},
"thumbnail" : "thumb.png"
},
{
"filename" : "gallery_widget5",
"name" : {
"zh_tw" : "5. 投影片式輪播",
"en" : "5. Slide"
}, },
"thumbnail" : "thumb.png" "thumbnail" : "thumb.png"
} }

View File

@ -7,7 +7,7 @@
<div class="show-content col-xs-6 col-sm-2"> <div class="show-content col-xs-6 col-sm-2">
<div class="show-content-inner"> <div class="show-content-inner">
<div class="show-pic"> <div class="show-pic">
<a href="{{link_to_show}}" onclick="window.location.hash = '{{link_to_show}}';GalleryTheater();"> <a href="{{link_to_show}}" onclick="window.location.hash = '{{link_to_show}}';GalleryTheater();return false;">
<img class="img" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="img" src="{{thumb-src}}" alt="{{alt_title}}">
</a> </a>
<p class="show-description">{{image-description}}</p> <p class="show-description">{{image-description}}</p>

View File

@ -4,7 +4,7 @@
</h3> </h3>
<ul class="list-unstyled" data-level="0" data-list="web_link"> <ul class="list-unstyled" data-level="0" data-list="web_link">
<li class="widget-content"> <li class="widget-content">
<a class="widget-content-title" href="{{link_to_show}}" target="_blank" title="{{title}}">{{title}}</a> <a class="widget-content-title" href="{{link_to_show}}" target="_blank" title="{{title_text}}">{{title}}</a>
<span data-list="statuses" data-level="1"> <span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span> <span class="label status {{status-class}}">{{status}}</span>
</span> </span>

View File

@ -0,0 +1,18 @@
<div class="widget-link widget1">
<h3 class="widget-title">
<span>{{widget-title}}</span>
</h3>
<ul class="list-unstyled" data-level="0" data-list="web_link">
<li class="widget-content widget-content-horizontal">
<a class="widget-content-title" href="{{link_to_show}}" target="_blank" title="{{title_text}}">{{title}}</a>
<span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
</li>
</ul>
</div>
<style type="text/css">
.widget-content-horizontal{
float: left;
}
</style>

View File

@ -21,8 +21,16 @@
{ {
"filename" : "web_res_widget1", "filename" : "web_res_widget1",
"name" : { "name" : {
"zh_tw" : "1. 列表 ( 模組標題, 連結 )", "zh_tw" : "1. 直式列表 ( 模組標題, 連結 )",
"en" : "1. List (widget-title, link)" "en" : "1. Vertical List (widget-title, link)"
},
"thumbnail" : "thumb.png"
},
{
"filename" : "web_res_widget2",
"name" : {
"zh_tw" : "2. 橫式列表 ( 模組標題, 連結 )",
"en" : "2. Horizontal List (widget-title, link)"
}, },
"thumbnail" : "thumb.png" "thumbnail" : "thumb.png"
} }

View File

@ -5,7 +5,7 @@
<ul class="list-unstyled" data-list="web_link" data-level="0"> <ul class="list-unstyled" data-list="web_link" data-level="0">
<li class="index-content"> <li class="index-content">
<h4> <h4>
<a class="index-content-title" href="{{link_to_show}}" target="_blank">{{title}}</a> <a class="index-content-title" href="{{link_to_show}}" target="_blank" title="{{title_text}}">{{title}}</a>
<span data-list="statuses" data-level="1"> <span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span> <span class="label status {{status-class}}">{{status}}</span>
</span> </span>

View File

@ -5,7 +5,7 @@
<ul class="list-unstyled" data-list="web_link" data-level="0"> <ul class="list-unstyled" data-list="web_link" data-level="0">
<li class="index-content col-md-4 col-sm-4"> <li class="index-content col-md-4 col-sm-4">
<h4> <h4>
<a class="index-content-title" href="{{link_to_show}}" target="_blank">{{title}}</a> <a class="index-content-title" href="{{link_to_show}}" target="_blank" title="{{title_text}}">{{title}}</a>
<span data-list="statuses" data-level="1"> <span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span> <span class="label status {{status-class}}">{{status}}</span>
</span> </span>