update template

This commit is contained in:
rulingcom 2021-09-03 03:45:44 +00:00
parent f9e5d3d827
commit 171b31a70c
43 changed files with 1503 additions and 681 deletions

View File

@ -303,6 +303,8 @@
@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) { @mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
background-image: -webkit-linear-gradient(left, color-stop($start-color $start-percent), color-stop($end-color $end-percent)); // Safari 5.1-6, Chrome 10+ background-image: -webkit-linear-gradient(left, color-stop($start-color $start-percent), color-stop($end-color $end-percent)); // Safari 5.1-6, Chrome 10+
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
-pie-background: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
behavior: url("/assets/ie_support/PIE2/PIE.htc");
background-repeat: repeat-x; background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
} }
@ -314,6 +316,8 @@
@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) { @mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+ background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
-pie-background: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
behavior: url("/assets/ie_support/PIE2/PIE.htc");
background-repeat: repeat-x; background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
} }
@ -322,16 +326,22 @@
background-repeat: repeat-x; background-repeat: repeat-x;
background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+ background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
-pie-background: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
behavior: url("/assets/ie_support/PIE2/PIE.htc");
} }
@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) { @mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color); background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color); background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
-pie-background: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
behavior: url("/assets/ie_support/PIE2/PIE.htc");
background-repeat: no-repeat; background-repeat: no-repeat;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
} }
@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) { @mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color); background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color); background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
-pie-background: linear-gradient($start-color, $mid-color $color-stop, $end-color);
behavior: url("/assets/ie_support/PIE2/PIE.htc");
background-repeat: no-repeat; background-repeat: no-repeat;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
} }
@ -343,6 +353,8 @@
@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) { @mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent); background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
-pie-background: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
behavior: url("/assets/ie_support/PIE2/PIE.htc");
} }
// Reset filters for IE // Reset filters for IE

View File

@ -14,6 +14,7 @@
color: $theme-white; color: $theme-white;
font-size: 0.75em; font-size: 0.75em;
border-radius: 2px; border-radius: 2px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
z-index: 1050; z-index: 1050;
&:hover { &:hover {

View File

@ -63,6 +63,7 @@
top: 15px; top: 15px;
padding: 14px 10px; padding: 14px 10px;
border-radius: 2px; border-radius: 2px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
border-width: 2px; border-width: 2px;
margin: 0; margin: 0;
background-color: $theme-gray-dark; background-color: $theme-gray-dark;

View File

@ -45,6 +45,7 @@
width: 0.8em; width: 0.8em;
height: 0.8em; height: 0.8em;
border-radius: 50%; border-radius: 50%;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
opacity: .5; opacity: .5;
} }

View File

@ -142,6 +142,7 @@
float: none; float: none;
margin: auto; margin: auto;
border-radius: 50%; border-radius: 50%;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
width: 200px; width: 200px;
height: 200px; height: 200px;
} }
@ -720,6 +721,7 @@
color: #fff; color: #fff;
font-size: 0.6875em; font-size: 0.6875em;
border-radius: 4px; border-radius: 4px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
padding: 2px 6px; padding: 2px 6px;
background-color: $theme-gray-light; background-color: $theme-gray-light;
} }

View File

@ -94,6 +94,7 @@
margin: 0 0.625rem 15px 0; margin: 0 0.625rem 15px 0;
padding: 8px 12px; padding: 8px 12px;
border-radius: 2px; border-radius: 2px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
border: 1px solid lighten($theme-gray-light, 10%); border: 1px solid lighten($theme-gray-light, 10%);
} }
@ -167,6 +168,7 @@
padding: 10px 12px; padding: 10px 12px;
margin-right: 5px; margin-right: 5px;
border-radius: 4px; border-radius: 4px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
font-size: 0.9375em; font-size: 0.9375em;
&:hover { &:hover {

View File

@ -84,7 +84,7 @@
background: lighten($theme-gray, 60%); background: lighten($theme-gray, 60%);
margin-bottom: 20px; margin-bottom: 20px;
border-radius: 2px; border-radius: 2px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
@media screen and (max-width: $screen-sm) { @media screen and (max-width: $screen-sm) {
margin-right: 20px; margin-right: 20px;
margin-left: 20px; margin-left: 20px;
@ -97,6 +97,7 @@
.index-img { .index-img {
border-radius: 2px; border-radius: 2px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
} }
.index-content-title { .index-content-title {
@ -128,6 +129,7 @@
width: 100%; width: 100%;
height: auto; height: auto;
border-radius: 2px; border-radius: 2px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
} }
.show-content-inner { .show-content-inner {

View File

@ -90,6 +90,7 @@
.i-member-item { .i-member-item {
background: #f1f1f1 none repeat scroll 0 0; background: #f1f1f1 none repeat scroll 0 0;
border-radius: 5px; border-radius: 5px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
float: none; float: none;
margin: 0 1% 30px; margin: 0 1% 30px;
padding: 20px; padding: 20px;

View File

@ -58,6 +58,7 @@
font-size: 1em; font-size: 1em;
text-align: center; text-align: center;
border-radius: 2px; border-radius: 2px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
z-index: 1; z-index: 1;
} }

View File

@ -3,6 +3,7 @@
background: rgba(255,255,255,0.1); background: rgba(255,255,255,0.1);
border: 1px solid rgba(0,0,0,0.1); border: 1px solid rgba(0,0,0,0.1);
border-radius: 5px; border-radius: 5px;
behavior: url("/assets/ie_support/PIE2/PIE.htc");
font-size: 0.9375em; font-size: 0.9375em;
list-style: outside none none; list-style: outside none none;
margin: 0 0 30px; margin: 0 0 30px;

View File

@ -14,10 +14,15 @@
<tbody data-level="0" data-list="acts"> <tbody data-level="0" data-list="acts">
<tr> <tr>
<td>{{category}}</td> <td>{{category}}</td>
<td>{{act_start_date}} ~ <br /> {{act_end_date}}</td> <td>{{act_duration_date}}</td>
<td>{{title}}</td> <td>
<td>{{sign_start_date}} ~ <br /> {{sign_end_date}}</td> <span class="active-status-wrap" data-list="statuses" data-level="1">
<td>{{sign_up}}</i></td> <span class="label status {{status-class}}">{{status}}</span>
</span>
{{title}}
</td>
<td>{{sign_duration_date}}</td>
<td>{{sign_up}}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -0,0 +1,25 @@
<div class="active-index1 {{display}}">
<h3>{{page-title}}</h3>
<table class="table table-striped">
<thead>
<tr>
<th class="active-th-time">{{th_act_time_range}}</th>
<th class="active-th-title">{{th_title}}</th>
<th class="col-md-2">{{th_sign_up}}</th>
</tr>
</thead>
<tbody data-level="0" data-list="acts">
<tr>
<td class="active-time" date-format="%Y-%m-%d">{{act_duration_date}}</td>
<td class="active-content">
<span class="active-status-wrap" data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
{{title}}
</td>
<td>{{sign_up}}</td>
</tr>
</tbody>
</table>
</div>
{{pagination_goes_here}}

View File

@ -0,0 +1,32 @@
<div class="active-index2">
<h3>{{page-title}}</h3>
<ul class="row" data-level="0" data-list="acts">
<li class="col-md-4">
<a href="{{link_to_show}}">
<div class="active-img-wrap">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="active-content-wrap">
<div class="active-meta">
<span class="active-status-wrap" data-list="statuses" data-level="1">
<span class="label {{status-class}}">{{status}}</span>
</span>
<span class="active-time-wrap" date-format="%Y-%m-%d">
<i class="fa fa-calendar-o"></i>
<span class="active-time" date-format="%Y-%m-%d">{{act_duration_date}}</span>
</span>
<span class="active-category-wrap">
<i class="fa fa-tasks"></i>
<span class="active-category">{{category}}</span>
</span>
</div>
<h4 class="active-title">
{{title_text}}
</h4>
<p class="active-subtitle">{{subtitle}}</p>
</div>
</a>
</li>
</ul>
</div>
{{pagination_goes_here}}

View File

@ -3,10 +3,26 @@
{ {
"filename" : "active_index", "filename" : "active_index",
"name" : { "name" : {
"zh_tw" : "1. 列表", "zh_tw" : "1. 列表 (類別, 活動期間, 狀態, 活動標題, 報名期間, 線上報名)",
"en" : "1. List" "en" : "1. List (Category, Event Period, status, Event Title, Registration Period, Register)"
}, },
"thumbnail" : "thumb.png" "thumbnail" : "thumb.png"
},
{
"filename" : "active_index1",
"name" : {
"zh_tw" : "2. 精簡表格列表-2 ( 模組標題, 活動期間, 狀態, 標題, 線上報名)",
"en" : "2. Simple Table List (widget-title, Event Period, status, title, Register)"
},
"thumbnail" : "active_index1_thumbs.png"
},
{
"filename" : "active_index2",
"name" : {
"zh_tw" : "3. 三欄圖文 ( 模組標題, 圖片, 狀態, 活動期間, 類別, 標題, 副標題, 線上報名)",
"en" : "3. 3-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle, Register)"
},
"thumbnail" : "active_index2_thumbs.png"
} }
] ]
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -1,30 +1,82 @@
<div class="w-ba-banner ba-banner-widget-1"> <div class="w-ad-banner w-ba-banner ad-banner-widget-1 ba-banner-widget-1">
<div class="w-ba-banner__wrap cycle-slideshow" <div class="w-ad-banner__wrap w-ba-banner__wrap cycle-slideshow"
data-list="images" data-list="images"
data-level="0" data-level="0"
data-cycle-slides=".w-ba-banner__slide" data-cycle-slides=".w-ba-banner__slide"
data-cycle-log="false" data-cycle-log="false"
data-overlay="[data-pager='#{{subpart-id}}']+.w-ba-banner__caption" data-overlay=".w-ad-banner__overlay_{{subpart-id}}"
data-cycle-auto-height="{{base_image}}" data-cycle-auto-height="{{base_image}}"
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="#{{subpart-id}}" data-cycle-pager=".banner_caption_{{subpart-id}}"
data-pager-template="<li><a href='#'></a></li>" data-pager-template=""
data-pager-active-class="active-slide" data-pager-active-class="active-slide"
data-cycle-swipe=true
data-cycle-swipe-fx="scrollHorz"
> >
<div class="w-ba-banner__slide {{class}}" <div class="w-ad-banner__slide w-ba-banner__slide {{class}}"
data-link="{{link}}" data-link="{{link}}"
data-cycle-title="{{title}}" data-cycle-title="{{title}}"
data-cycle-desc="{{context}}" data-cycle-desc="{{context}}"
data-overlay-template="<h2>{{title}}</h2>{{desc}}" data-overlay-template="<h3>{{title}}</h3><p>{{desc}}</p>"
data-target="{{target}}" data-target="{{target}}"
> >
<img class="w-ba-banner__image banner-responsive" src="{{image_link}}" alt="{{alt_title}}"> <a href="{{link}}" target="{{target}}" title="{{alt_title}}">
</div> <img class="w-ad-banner__image w-ba-banner__image banner-responsive" src="{{image_link}}" alt="{{alt_title}}">
</div> </a>
<div class="w-ba-banner__caption"></div>
<ul id="{{subpart-id}}" class="w-ba-banner__pager-1 banner-pager"></ul>
</div>
</div>
</div>
<div class="w-ad-banner__caption ad-overlay w-ba-banner__caption w-ad-banner__caption w-ad-banner__overlay_{{subpart-id}}"></div>
<div class="w-ad-banner__pager-1 w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}" data-list="images" data-level="0">
<li><button title="Slide {{slide_number}}"><span style="display: none;">Slide {{slide_number}}</span></button></li>
</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">
<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>
</ul>
</div>
<script>
var flag = 1;
$('.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>
<style type="text/css">
.w-ba-banner .controlplay .resume-slide.active i{
color: #32D9C3;
}
.w-ba-banner .controlplay .pause-slide.active i{
color: #ff4500;
}
.w-ba-banner .controlplay{
width: auto;
}
.w-ba-banner .button-mid{
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.next-button,.prev-button{
cursor: pointer;
}
</style>

View File

@ -1,25 +1,37 @@
<div class="w-ba-banner ba-banner-widget-2 ba-banner-widget-youtube"> <div class="w-ad-banner ad-banner-widget-2 w-ba-banner ba-banner-widget-1 ba-banner-widget-youtube">
<div class="w-ba-banner__wrap cycle-slideshow" <div class="w-ad-banner__wrap w-ba-banner__wrap cycle-slideshow"
data-list="images" data-list="images"
data-level="0" data-level="0"
data-cycle-timeout="3000"
data-cycle-slides=".w-ba-banner__slide" data-cycle-slides=".w-ba-banner__slide"
data-cycle-log="false" data-cycle-log="false"
data-overlay="[data-subpart-id='{{subpart-id}}']+.w-ba-banner__caption" data-overlay=".w-ad-banner__overlay_{{subpart-id}}"
data-overlay-template="<h2><span>{{title}}</span></h2>{{desc}}"
data-cycle-auto-height="{{base_image}}" data-cycle-auto-height="{{base_image}}"
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="[data-subpart-id='{{subpart-id}}']+.w-ba-banner__pager-2" data-pager=".banner_caption_{{subpart-id}}"
data-pager-template="<li><a href='#'></a></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-subpart-id="{{subpart-id}}"> data-cycle-swipe="true"
data-cycle-prev=".banner_prev"
data-cycle-next=".banner_next"
data-cycle-pause-on-hover="true"
style="padding-bottom: 56.25%;"
>
{{html}} {{html}}
</div> </div>
<ul class="w-ba-banner__pager-2 banner-pager"></ul> <div class="ad-overlay w-ad-banner__overlay_{{subpart-id}}"></div>
<div class="w-ba-banner__caption w-ad-banner__pager-2 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">
<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>
</ul>
</div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
if (typeof ad_banners_count === 'undefined'){ if (typeof ad_banners_count === 'undefined'){
@ -33,36 +45,156 @@
var firstScriptTag = document.getElementsByTagName('script')[0]; var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
} }
$("document").ready(function(){
$("*[data-yt-binded=0]").each(function(){ $("*[data-yt-binded=0]").each(function(){
$(this).attr("data-yt-binded","1"); $(this).attr("data-yt-binded","1");
var obj = $(this).find("iframe"); var obj = $(this).find("iframe");
obj.attr("id",$(this).data("youtube-id") + "_" + ad_banners_count); obj.attr("id",$(this).data("youtube-id") + "_" + ad_banners_count);
ad_banners_count++; ad_banners_count++;
}) })
});
if (typeof onYouTubeIframeAPIReady !== 'function'){ if (typeof onYouTubeIframeAPIReady !== 'function'){
if(window.yt_players == undefined)
window.yt_players = {};
$(".w-ba-banner__wrap[data-overlay=\".w-ad-banner__overlay_{{subpart-id}}\"]");
function onYouTubeIframeAPIReady(){ function onYouTubeIframeAPIReady(){
$(".w-ba-banner iframe[data-yt-api-binded=0]").each(function(){ $(".w-ba-banner").each(function(i,banner){
$(this).attr("data-yt-api-binded","1"); var iframes = $(banner).find("iframe");
new YT.Player($(this).attr("id"), { if(iframes.length > 0){
var id = $(banner).attr("data-subpart-id");
if(yt_players[id] == undefined)
yt_players[id] = {};
var remove_ids = [];
Object.keys(yt_players[id]).forEach(function(k){
var yt_player = yt_players[id][k];
if($(yt_player.getIframe()).length == 0){
yt_player.destroy();
remove_ids.push(k);
}
})
remove_ids.forEach(function(k){
delete yt_players[id][k];
})
iframes.each(function(i,iframe){
console.log($(iframe).attr("id"))
var yt_player = yt_players[id][$(iframe).attr("id")];
if(yt_player){
}else{
yt_player = new YT.Player($(iframe).attr("id"), {
events: { events: {
'onReady': function(event){
var height = $(event.target.getIframe()).height();
var banner_wrap = $(".w-ba-banner__wrap[data-overlay=\".w-ad-banner__overlay_{{subpart-id}}\"]");
banner_wrap.height(height).css({"padding-bottom":"4em","padding-top":""});
banner_wrap.find(".cycle-carousel-wrap").css("top","3em");
delete event.target.B.onStateChange;
var onStateChange_idx = event.target.l.i.onStateChange;
onStateChange_idx.reverse();
var event_size = 3;
onStateChange_idx.forEach(function(start_idx){
event.target.l.h.splice(start_idx,event_size);
});
event.target.l.i.onStateChange = [];
event.target.l.s = event.target.l.h.length;
event.target.addEventListener('onStateChange',onPlayerStateChange);
{{extra_ready_script}}
},
'onStateChange': onPlayerStateChange 'onStateChange': onPlayerStateChange
} }
}); });
yt_players[id][$(iframe).attr("id")] = yt_player;
$(iframe).data("yt_player",yt_player);
}
})
}
}) })
} }
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[0].need_resume = !(cyclediv.hasClass("cycle-paused"));
cyclediv.cycle("pause"); cyclediv.cycle("pause");
}else if(event.data == YT.PlayerState.PAUSED || event.data == YT.PlayerState.ENDED){ widget.find('.banner-pager,.controlplay,.button-mid,.ad-overlay').css('visibility','hidden')
}else if(event.data == YT.PlayerState.UNSTARTED || event.data == YT.PlayerState.PAUSED || event.data == YT.PlayerState.ENDED){
if(cyclediv[0].need_resume)
cyclediv.cycle("resume"); cyclediv.cycle("resume");
widget.find('.banner-pager,.controlplay,.button-mid,.ad-overlay').css('visibility','')
} }
{{extra_state_chnage_script}}
} }
$(document).ready(function(){
window.onYouTubePlayerAPIReady = function() {
onYouTubeIframeAPIReady.apply(this,arguments);
};
var banner_wrap = $(".w-ba-banner__wrap[data-overlay=\".w-ad-banner__overlay_{{subpart-id}}\"]");
var opts = banner_wrap.data('cycle.opts');
banner_wrap.on('cycle-paused',function(opts){
var controlplay = $(this).nextAll(".controlplay");
if(controlplay.length != 0){
controlplay.find(".resume-slide").removeClass("active");
controlplay.find(".pause-slide").addClass("active");
}
})
banner_wrap.on('cycle-resumed',function(opts){
var controlplay = $(this).nextAll(".controlplay");
if(controlplay.length != 0){
controlplay.find(".resume-slide").addClass("active");
controlplay.find(".pause-slide").removeClass("active");
}
})
var height = opts.slides.filter('.active').height() || opts.slides.height();
banner_wrap.height(height).css("padding-bottom","");
{{extra_document_ready_script}}
$('.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");
})
var resize_timeout_id;
$(window).resize(function(){
if(resize_timeout_id){
window.clearTimeout(resize_timeout_id);
}
resize_timeout_id = window.setTimeout(function(){
var banner_wrap = $(".w-ba-banner__wrap[data-overlay=\".w-ad-banner__overlay_{{subpart-id}}\"]");
var opts = banner_wrap.data('cycle.opts');
var height = opts.slides.filter('.active').height() || opts.slides.height();
banner_wrap.height(height).css("padding-bottom","");
},300);
})
})
} }
</script> </script>
<style type="text/css">
.w-ba-banner .controlplay .resume-slide.active i{
color: #32D9C3;
}
.w-ba-banner .controlplay .pause-slide.active i{
color: #ff4500;
}
.w-ba-banner .controlplay{
width: auto;
}
.w-ba-banner .button-mid{
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.next-button,.prev-button{
cursor: pointer;
}
</style>

View File

@ -6,8 +6,8 @@
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a> <a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div> </div>
<div style="position: absolute;top: 50%;bottom: 50%;width:100%;"> <div style="position: absolute;top: 50%;bottom: 50%;width:100%;">
<button class="btn-left" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>" style="float: left;height: 2.5em; width: 2.5em;background: url(/assets/left-01.png) no-repeat;border: 0;background-size: contain;position: absolute;transition:.3s; left: 0.6%;"></button> <button class="btn-left" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>" style="float: left;height: 2.5em; width: 2.5em;background: url(/assets/left-01.png) no-repeat;border: 0;background-size: contain;position: absolute;transition:.3s; left: 0.6%;"><span style="display: none;"><%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %></span></button>
<button class="btn-right" title = "<%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %>" style="float: right;;height: 2.5em; width: 2.5em;background: url(/assets/right-01.png) no-repeat;background-size: contain;border: 0;position: absolute;transition:.3s;right: 0.6%;"></button> <button class="btn-right" title = "<%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %>" style="float: right;;height: 2.5em; width: 2.5em;background: url(/assets/right-01.png) no-repeat;background-size: contain;border: 0;position: absolute;transition:.3s;right: 0.6%;"><span style="display: none;"><%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %></span></button>
</div> </div>
<ul class="w-annc__list row" data-level="0" data-list="announcements"> <ul class="w-annc__list row" data-level="0" data-list="announcements">
<li class="w-annc__item col-md-4"> <li class="w-annc__item col-md-4">
@ -38,93 +38,126 @@
</div> </div>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script> <script>
function combineul(){ function combineul_{{subpart-id}}(){
for(var i=1;i<$('.widget-announcement-4 ul.w-annc__list').length;i++) var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
$('.widget-announcement-4 ul.w-annc__list').eq(0).find('>li').eq(-1).after($('.widget-announcement-4 ul.w-annc__list').eq(i).html()); parents.each(function(i,v){
var ullength = $('.widget-announcement-4 ul.w-annc__list').length; for(var i=1;i<$(v).find('ul.w-annc__list').length;i++)
$(v).find('ul.w-annc__list').eq(0).find('>li').eq(-1).after($(v).find('ul.w-annc__list').eq(i).html());
var ullength = $(v).find('ul.w-annc__list').length;
for(var i = 1;i < ullength;i++) for(var i = 1;i < ullength;i++)
$('.widget-announcement-4 ul.w-annc__list').eq(-1).remove(); $(v).find('ul.w-annc__list').eq(-1).remove();
})
}; };
var lilength = $('.widget-announcement-4 li.w-annc__item').length;
var num; var num;
function reorganize(num){ var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
combineul(); function reorganize_{{subpart-id}}(num){
for(var i=1;i< Math.ceil(lilength/num);i++){ var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').toArray();
$('.widget-announcement-4 ul.w-annc__list').eq(-1).after('<ul class="w-annc__list row" data-level="0" data-list="announcements"></ul>') var currentul = uls.findIndex(function(v){
return $(v).hasClass("active") && !$(v).hasClass("hidden_item");
})
if(currentul == -1)
currentul = 0;
var li_active_idx = 0;
if(currentul != 0)
li_active_idx = $(uls[currentul]).find("li.w-annc__item").eq(0).index("li.w-annc__item");
combineul_{{subpart-id}}();
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
var lilength = $(v).find('li.w-annc__item').length;
var ul_length = Math.ceil(lilength/num);
for(var ii=1;ii< ul_length;ii++){
var clone_ul = $(v).find('ul.w-annc__list').eq(-1).clone();
clone_ul.empty();
clone_ul.removeClass("active");
clone_ul.css("display","");
$(v).find('ul.w-annc__list').eq(-1).after(clone_ul.prop("outerHTML"));
var lihtml=""; var lihtml="";
//var liheight=new Array(num); if(ii != (ul_length-1)){
if(i != (Math.ceil(lilength/num)-1)){
for(var j=0;j<num;j++){ for(var j=0;j<num;j++){
lihtml += "<li class='w-annc__item col-md-4'>"+$('.widget-announcement-4 li.w-annc__item').eq(i*num+j).html()+"</li>" lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
//liheight[j] = $('.widget-announcement-4 li.w-annc__item').eq(i*num+j).height()+20;//20=>margin-top+margin-bottom
}; };
}else{ }else{
for(var j=0;j< lilength - num *(Math.ceil(lilength/num)-1) ;j++){ for(var j=0;j< lilength - num *(ul_length-1) ;j++){
lihtml += "<li class='w-annc__item col-md-4'>"+$('.widget-announcement-4 li.w-annc__item').eq(i*num+j).html()+"</li>" lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
//liheight[j] = $('.widget-announcement-4 li.w-annc__item').eq(i*num+j).height()+20;//20=>margin-top+margin-bottom
}; };
}; };
$('.widget-announcement-4 ul.w-annc__list').eq(-1).html(lihtml); $(v).find('ul.w-annc__list').eq(-1).html(lihtml);
}; }
if(Math.ceil(lilength/num) != 1 ) if(ul_length != 1 )
for(var i=0;i< lilength -num ; i++) for(var i=0;i< lilength -num ; i++)
$('.widget-announcement-4 ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove(); $(v).find('ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove();
for(var i=0;i< Math.ceil(lilength/num);i++) })
$('.widget-announcement-4 ul.w-annc__list').eq(i).attr("index",i); $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css("display","none");
$('.widget-announcement-4 ul.w-annc__list').css("display","none"); $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('padding','0 1.125em');
$('.widget-announcement-4 ul.w-annc__list').eq(0).css("display","flex"); $('[data-subpart-id=\"{{subpart-id}}\"] button').css('z-index','10');
$('.widget-announcement-4 ul.w-annc__list').eq(0).addClass("active"); $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('width','calc('+100/num+'% - '+20/16+'em)'); //20px=>li的margin
$('.widget-announcement-4 ul.w-annc__list').css('padding','0 1.125em'); $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('float','left');
$('.widget-announcement-4 button').css('z-index','10'); var active_ul = $("[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item").eq(li_active_idx).parents("ul.w-annc__list");
$('.widget-announcement-4 ul.w-annc__list >li').css('width','calc('+100/num+'% - '+20/16+'em)'); //20px=>li的margin active_ul.addClass("active");
$('.widget-announcement-4 ul.w-annc__list >li').css('float','left'); active_ul.removeClass("hidden_item");
active_ul.css("display","");
}; };
$(window).resize(function(){ $(window).resize(function(){
if($(window).width()>1024){ if($(window).width()>1024){
reorganize(3); reorganize_{{subpart-id}}(3);
num=3; num=3;
}else if($(window).width()>576){ }else if($(window).width()>576){
reorganize(2); reorganize_{{subpart-id}}(2);
num=2; num=2;
}else{ }else{
reorganize(1); reorganize_{{subpart-id}}(1);
num=1; num=1;
} }
}) })
$(document).ready(function(){ $(document).ready(function(){
if($(window).width()>1024){ if($(window).width()>1024){
reorganize(3); reorganize_{{subpart-id}}(3);
num=3; num=3;
}else if($(window).width()>576){ }else if($(window).width()>576){
reorganize(2); reorganize_{{subpart-id}}(2);
num=2; num=2;
}else{ }else{
reorganize(1); reorganize_{{subpart-id}}(1);
num=1; num=1;
} }
var flag=false; var flag=false;
$('.btn-left').click(function(){ $('.btn-left').click(function(){
if(!flag){ if(!flag){
var currentul = Number($('.widget-announcement-4 ul.w-annc__list.active').attr("index")); var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
$('.widget-announcement-4 ul.w-annc__list').css('display','none'); var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul - 1 < 0) if(currentul - 1 < 0)
currentul += Math.ceil(lilength/num); currentul += ul_length;
$('.widget-announcement-4 ul.w-annc__list').removeClass("active"); $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
$('.widget-announcement-4 ul.w-annc__list').eq(currentul-1).addClass("active"); var active_item = $(uls[currentul-1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true; flag=true;
$('.widget-announcement-4 ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){flag=false;}); $("body").css("overflow-x","hidden");
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){$("body").css("overflow-x","");flag=false;});
}; };
}); });
$('.btn-right').click(function(){ $('.btn-right').click(function(){
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
if(!flag){ if(!flag){
var currentul = Number($('.widget-announcement-4 ul.w-annc__list.active').attr("index")); var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
$('.widget-announcement-4 ul.w-annc__list').css("display","none"); var ul_length = uls.length;
if(currentul + 1 > Math.ceil(lilength/num) - 1) var currentul = uls.findIndex(function(v){
currentul -= Math.ceil(lilength/num); return $(v).hasClass("active");
$('.widget-announcement-4 ul.w-annc__list').removeClass("active"); })
$('.widget-announcement-4 ul.w-annc__list').eq(currentul+1).addClass("active"); $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul + 1 > ul_length - 1)
currentul -= ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul+1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true; flag=true;
$('.widget-announcement-4 ul.w-annc__list.active').eq(0).effect("slide", { direction: "right", mode: 'show', duration: 500},function(){flag=false;}); $("body").css("overflow-x","hidden");
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "right", mode: 'show', duration: 500},function(){$("body").css("overflow-x","");flag=false;});
}; };
}); });
}); });

View File

@ -1,13 +1,29 @@
<div class="w-annc widget-announcement-4"> <div class="w-annc widget-announcement-4">
<h3 class="w-annc__widget-title"> <div class="w-annc__more-wrap clearfix">
<h2 class="w-annc__widget-title">
<span>{{widget-title}}</span> <span>{{widget-title}}</span>
</h3> </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"> <ul class="w-annc__list row" data-level="0" data-list="announcements">
<li class="w-annc__item row col-md-4"> <li class="w-annc__item col-md-4">
<div class="w-annc__img-wrap bullseye col-xs-5 col-md-12"> <div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}"> <img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div> </div>
<div class="w-annc__content-wrap col-xs-7 col-md-12"> <div class="w-annc__content-wrap">
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
<i class="fa fa-calendar-o"></i>
<span class="w-annc__postdate">{{postdate}}</span>
</span>
<span class="w-annc__category-wrap">
<i class="fa fa-tasks"></i>
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<h4 class="w-annc__entry-title"> <h4 class="w-annc__entry-title">
<a class="w-annc__title" href="{{link_to_show}}">{{title}}</a> <a class="w-annc__title" href="{{link_to_show}}">{{title}}</a>
</h4> </h4>
@ -15,7 +31,78 @@
</div> </div>
</li> </li>
</ul> </ul>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary" href="{{more_url}}">Read more</a>
</div>
</div> </div>
<style type="text/css">
[data-subpart-id="{{subpart-id}}"] .bullseye{
overflow: hidden;
}
</style>
<script>
function combineul_{{subpart-id}}(){
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
for(var i=1;i<$(v).find('ul.w-annc__list').length;i++)
$(v).find('ul.w-annc__list').eq(0).find('>li').eq(-1).after($(v).find('ul.w-annc__list').eq(i).html());
var ullength = $(v).find('ul.w-annc__list').length;
for(var i = 1;i < ullength;i++)
$(v).find('ul.w-annc__list').eq(-1).remove();
})
};
var num;
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
function reorganize_{{subpart-id}}(num){
combineul_{{subpart-id}}();
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
var lilength = $(v).find('li.w-annc__item').length;
var ul_length = Math.ceil(lilength/num);
for(var ii=1;ii< ul_length;ii++){
var clone_ul = $(v).find('ul.w-annc__list').eq(-1).clone();
clone_ul.empty();
clone_ul.removeClass("active");
clone_ul.css("display","");
$(v).find('ul.w-annc__list').eq(-1).after(clone_ul.prop("outerHTML"));
var lihtml="";
if(ii != (ul_length-1)){
for(var j=0;j<num;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
}else{
for(var j=0;j< lilength - num *(ul_length-1) ;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
};
$(v).find('ul.w-annc__list').eq(-1).html(lihtml);
}
if(ul_length != 1 )
for(var i=0;i< lilength -num ; i++)
$(v).find('ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove();
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('width','calc('+100/num+'% - '+20/16+'em)'); //20px=>li的margin
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css("float","left");
};
$(window).resize(function(){
if($(window).width()>1024){
reorganize_{{subpart-id}}(3);
num=3;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(2);
num=2;
}else{
reorganize_{{subpart-id}}(1);
num=1;
}
})
$(document).ready(function(){
if($(window).width()>1024){
reorganize_{{subpart-id}}(3);
num=3;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(2);
num=2;
}else{
reorganize_{{subpart-id}}(1);
num=1;
}
})
</script>

View File

@ -241,6 +241,38 @@
"en": "14. 1 Image + Title List (widget-title, image, status, title, postdate)" "en": "14. 1 Image + Title List (widget-title, image, status, title, postdate)"
}, },
"thumbnail": "annc_widget14_thumbs.png" "thumbnail": "annc_widget14_thumbs.png"
},
{
"filename": "annc_widget15",
"name": {
"zh_tw": "15.5. 三欄圖文-slide ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "15.5. 3-Column Standard Image + Text -slide(widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget4_thumbs.png"
},
{
"filename": "annc_widget16",
"name": {
"zh_tw": "16. 三欄圖文精簡版 ( 模組標題, 標題, 副標題(只顯示15字) )",
"en": "16. 3-Column Standard Image + Text Lite (widget-title, title, subtitle(only display 15 words))"
},
"thumbnail": "annc_widget4_thumbs.png"
},
{
"filename": "annc_widget17",
"name": {
"zh_tw": "17. 單欄圖文輪播 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題 )",
"en": "17. Image + Text slide (widget-title, image, status, postdate, category, title)"
},
"thumbnail": "annc_widget1_thumbs.png"
},
{
"filename": "annc_widget18",
"name": {
"zh_tw": "18. 含搜尋功能之精簡標題列表-2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "18. Simple Title List-2 (widget-title, postdate, status, title), including search"
},
"thumbnail": "annc_widget11_thumbs.png"
} }
] ]
} }

View File

@ -1,3 +1,28 @@
<style type="text/css">
.full-size-img img {
width: 100%;
}
.full-size-img {
width: 100%;
}
.s-annc__sub-img.pull-right {
margin-left: 2em;
}
.s-annc__sub-img.pull-left {
margin-right: 2em;
}
strong.carousel__description {
color: white;
}
.carousel_images{
{{carousel_display_style}}
}
@media (max-width: 767px){
.carousel_images{
width: 100%;
}
}
</style>
<article class="s-annc show-announcement"> <article class="s-annc show-announcement">
<h1 class="s-annc__show-title">{{title}}</h1> <h1 class="s-annc__show-title">{{title}}</h1>
@ -19,7 +44,7 @@
</ul> </ul>
<section class="s-annc__post-wrap"> <section class="s-annc__post-wrap">
<div class="s-annc__sub-img pull-right {{hide_class}}"> <div class="s-annc__sub-img {{hide_class}}">
<img src="{{img_src}}" alt="{{img_description}}"></img> <img src="{{img_src}}" alt="{{img_description}}"></img>
<span class="s-annc__img_description">{{img_description}}</span> <span class="s-annc__img_description">{{img_description}}</span>
</div> </div>
@ -44,9 +69,169 @@
</ul> </ul>
</article> </article>
<div class="carousel_images">
<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 +252,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.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 = $(".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.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();
$(".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

@ -1,54 +1 @@
{ {"frontend":[{"filename":"archive_index1","name":{"zh_tw":"1. 列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )","en":"1. List (widget-title, category, filename, download link)"},"thumbnail":"thumb.png"},{"filename":"archive_index2","name":{"zh_tw":"2. 手風琴式列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )","en":"2. Accordion list (widget-title, category, filename, download link)"},"thumbnail":"thumb.png"},{"filename":"archive_index3","name":{"zh_tw":"3. 列表( 無檔案名稱 ) ( 模組標題, 類別標題, 下載連結 )","en":"3. List(no filename) (widget-title, category, download link)"},"thumbnail":"thumb.png"},{"filename":"archive_index4","name":{"zh_tw":"4. 手風琴式列表( 無檔案名稱 ( 模組標題, 類別標題, 下載連結 )","en":"4. Accordion list(no filename) (widget-title, category, download link)"},"thumbnail":"thumb.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" : "thumb.png"
},
{
"filename" : "archive_index2",
"name" : {
"zh_tw" : "2. 手風琴式列表 ( 模組標題, 類別標題, 檔案名稱, 下載連結 )",
"en" : "2. Accordion list (widget-title, category, filename, download link)"
},
"thumbnail" : "thumb.png"
},
{
"filename" : "archive_index3",
"name" : {
"zh_tw" : "3. 列表( 無檔案名稱 ) ( 模組標題, 類別標題, 下載連結 )",
"en" : "3. List(no filename) (widget-title, category, download link)"
},
"thumbnail" : "thumb.png"
},
{
"filename" : "archive_index4",
"name" : {
"zh_tw" : "4. 手風琴式列表( 無檔案名稱 ( 模組標題, 類別標題, 下載連結 )",
"en" : "4. Accordion list(no filename) (widget-title, category, download link)"
},
"thumbnail" : "thumb.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

@ -7,6 +7,14 @@
"en": "1. Thumbnail ( widget-title, question )" "en": "1. Thumbnail ( widget-title, question )"
}, },
"thumbnail": "thumb.png" "thumbnail": "thumb.png"
},
{
"filename": "faq_index2",
"name": {
"zh_tw": "2. 手風琴列表 ( 模組標題, 問題 )",
"en": "2. Accordion list ( widget-title, question )"
},
"thumbnail": "thumb.png"
} }
], ],
"widgets": [ "widgets": [

View File

@ -1,21 +1,10 @@
<div class="widget-gallery widget3 no-print"> <div class="widget-gallery widget2 no-print">
<!-- <h3 class="w-annc__widget-title"> <h3 class="widget-title">
<span class="album_icon"></span><span>{{widget-title}}</span> <span>{{widget-title}}</span>
</h3> --> </h3>
<div class="cycle-slideshow widget-content" <div class="row widget-content" data-level="0" data-list="images">
data-level="0" data-list="images" data-cycle-slides="> a" <div class="col-md-4" style="text-align: center;">
data-cycle-fx="carousel" data-cycle-timeout="3000" data-cycle-carousel-visible="1" data-cycle-pause-on-hover="true" data-cycle-log="false" data-cycle-carousel-fluid="true"> <a class="widget-pic" href="{{link_to_show}}" title="{{album-name}}">
<a class="widget-pic" href="{{link_to_show}}" target="_blank" title="{{album-name}}">
<div class="mask_box">
<div class="mask_word">
<div class="mask_word_box">
<div class="mask_title">{{image_description}}</div>
</div>
</div>
<div class="mask">
<div class="circle_box"><img src="/assets/circle_icon.png" alt="">
</div>
</div>
<img <img
srcset=" srcset="
{{thumb-large-src}} 1024w, {{thumb-large-src}} 1024w,
@ -23,11 +12,8 @@
src="{{thumb-src}}" src="{{thumb-src}}"
alt="{{alt_title}}" alt="{{alt_title}}"
> >
</div>
</a> </a>
<a href="{{link_to_show}}" title="{{album-name}}">{{link_text}}</a>
</div> </div>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= locale == :en ? 'more' : '更多照片' %></a>
</div> </div>
</div> </div>

View File

@ -1,12 +1,21 @@
<div class="widget-gallery gallery card-group widget4 no-print"> <div class="widget-gallery widget3 no-print">
<h3 class="widget-title"> <!-- <h3 class="w-annc__widget-title">
<span>{{widget-title}}</span> <span class="album_icon"></span><span>{{widget-title}}</span>
</h3> </h3> -->
<link rel="stylesheet" type="text/css" href="/assets/gallery_card.css"> <div class="cycle-slideshow widget-content"
<div class="row widget-content" data-level="0" data-list="images"> data-level="0" data-list="images" data-cycle-slides="> a"
<div class="card card-flip h-100"> data-cycle-fx="carousel" data-cycle-timeout="3000" data-cycle-carousel-visible="1" data-cycle-pause-on-hover="true" data-cycle-log="false" data-cycle-carousel-fluid="true">
<div class="card-front"> <a class="widget-pic" href="{{link_to_show}}" target="_blank" title="{{album-name}}">
<div class="card-body" style="padding:0;"> <div class="mask_box">
<div class="mask_word">
<div class="mask_word_box">
<div class="mask_title">{{image_description}}</div>
</div>
</div>
<div class="mask">
<div class="circle_box"><img src="/assets/circle_icon.png" alt="">
</div>
</div>
<img <img
srcset=" srcset="
{{thumb-large-src}} 1024w, {{thumb-large-src}} 1024w,
@ -14,25 +23,11 @@
src="{{thumb-src}}" src="{{thumb-src}}"
alt="{{alt_title}}" alt="{{alt_title}}"
> >
<div class="card-footer">
<h3 class="card-title">{{image_short_description}}</h3>
</div> </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> </a>
</div>
</div> </div>
</div> <div class="w-annc__more-wrap clearfix">
</div> <a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= locale == :en ? 'more' : '更多照片' %></a>
</div> </div>
</div> </div>

View File

@ -1,72 +1,38 @@
<div class="widget-gallery gallery widget5 no-print"> <div class="widget-gallery gallery card-group widget4 no-print">
<h3 class="widget-title"> <h3 class="widget-title">
<span>{{widget-title}}</span> <span>{{widget-title}}</span>
</h3> </h3>
<% OrbitHelper.render_css_in_head(["theater.css"]) %> <link rel="stylesheet" type="text/css" href="/assets/gallery_card.css">
<%= javascript_include_tag "jquery.touchSwipe.min" %> <div class="row widget-content" data-level="0" data-list="images">
<%= javascript_include_tag "theater-widget" %> <div class="card card-flip h-100">
<% OrbitHelper.render_meta_tags([{"name" => "mobile-web-app-capable","content" => "yes"},{"name" => "apple-mobile-web-app-status-bar-style","content" => "black-translucent"}]) %> <div class="card-front">
<div id="gallery-theater-stage"> <div class="card-body" style="padding:0;">
<div class="show-gallery-2 gallery" style="margin-top: 2.4em;"> <img
<div class="gallery-loader"> srcset="
<div class="spinner"> {{thumb-large-src}} 1024w,
<div class="rect1"></div> {{thumb-src}} 768w"
<div class="rect2"></div> src="{{thumb-src}}"
<div class="rect3"></div> alt="{{alt_title}}"
<div class="rect4"></div> >
<div class="rect5"></div> <div class="card-footer">
<h3 class="card-title">{{image_short_description}}</h3>
</div> </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>
<div class="gallery-toggle-desc gallery-actions-btn"> <div class="card-back">
<i class="fa fa-comment"></i> <div class="card-body" style="background-color: {{album_color}};color: {{album_card_text_color}};">
</div> <h3 class="card-title">{{image_short_description}}</h3>
<div class="gallery-theme-switch gallery-actions-btn"> {{image_description}}
<i class="fa fa-circle"></i> <div class="card-button-group">
</div> <a href="{{link_to_show}}" class="btn btn-secondary view ">
<div class="gallery-close gallery-actions-btn"> <i class="fa fa-link" aria-hidden="true"></i>
<i class="fa fa-times"></i> </a>
</div> <a href="{{src}}" data-toggle="lightbox" data-gallery="gallery" class="btn btn-secondary preview" data-title="{{alt_title}}" data-type="image">
</div> <i class="fa fa-eye" aria-hidden="true"></i>
<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> </a>
</li>
</ul>
</div>
<div class="gallery-img-desc">
<div class="gallery-img-desc-inner">
</div> </div>
</div> </div>
</div> </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> </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

@ -49,6 +49,38 @@
"en": "2. Thumbnail" "en": "2. Thumbnail"
}, },
"thumbnail": "thumb.png" "thumbnail": "thumb.png"
},
{
"filename": "gallery_widget3",
"name": {
"zh_tw": "3. 相本排版 ( 模組標題, 圖片 )",
"en": "3. Thumbnail (widget-title, image)"
},
"thumbnail": "thumb.png"
},
{
"filename": "gallery_widget4",
"name": {
"zh_tw": "4. 單本相簿跑馬燈 ( 圖片 )",
"en": "4. Single Picture With Carousel Effect (image)"
},
"thumbnail": "thumb.png"
},
{
"filename": "gallery_widget5",
"name": {
"zh_tw": "5. 卡片",
"en": "5. Card"
},
"thumbnail": "thumb.png"
},
{
"filename": "gallery_widget6",
"name": {
"zh_tw": "6. 投影片式輪播",
"en": "6. Slide"
},
"thumbnail": "thumb.png"
} }
] ]
} }

View File

@ -23,7 +23,7 @@ $( ".selectbox" ).ready(function() {
<a id="filter" style="" href="{{url}}">Clear</a> <a id="filter" style="" href="{{url}}">Clear</a>
</form> </form>
</div> </div>
<table class="table table-hover table-striped journal-papers-index"> <table class="table table-hover table-striped book-index">
<thead> <thead>
<tr data-level="0" data-list="headers"> <tr data-level="0" data-list="headers">
<th class="col-md-{{col}}">{{head-title}}</th> <th class="col-md-{{col}}">{{head-title}}</th>

View File

@ -23,7 +23,7 @@ $( ".selectbox" ).ready(function() {
<a id="filter" style="" href="{{url}}">Clear</a> <a id="filter" style="" href="{{url}}">Clear</a>
</form> </form>
</div> </div>
<table class="table table-hover table-striped projects-index"> <table class="table table-hover table-striped personal_conference-index">
<thead> <thead>
<tr data-level="0" data-list="headers"> <tr data-level="0" data-list="headers">
<th class="col-md-{{col}}">{{head-title}}</th> <th class="col-md-{{col}}">{{head-title}}</th>

View File

@ -23,7 +23,7 @@ $( ".selectbox" ).ready(function() {
<a id="filter" style="" href="{{url}}">Clear</a> <a id="filter" style="" href="{{url}}">Clear</a>
</form> </form>
</div> </div>
<table class="table table-hover table-striped projects-index"> <table class="table table-hover table-striped personal_journal-index">
<thead> <thead>
<tr data-level="0" data-list="headers"> <tr data-level="0" data-list="headers">
<th class="col-md-{{col}}">{{head-title}}</th> <th class="col-md-{{col}}">{{head-title}}</th>

View File

@ -23,7 +23,7 @@ $( ".selectbox" ).ready(function() {
<a id="filter" style="" href="{{url}}">Clear</a> <a id="filter" style="" href="{{url}}">Clear</a>
</form> </form>
</div> </div>
<table class="table table-hover table-striped projects-index"> <table class="table table-hover table-striped personal_patent-index">
<thead> <thead>
<tr data-level="0" data-list="headers"> <tr data-level="0" data-list="headers">
<th class="col-md-{{col}}">{{head-title}}</th> <th class="col-md-{{col}}">{{head-title}}</th>

View File

@ -0,0 +1,57 @@
<div id="{{update_id}}" class="bus_widget1" data-list="bus_infos" data-level="0">
<div class="bus_info" id="{{bus_id}}">
<div class="row mt-10">
<div class="col-sm-12 bus_title">
<i class="fa fa-bus"></i>
<strong>{{bus_title}}</strong>
</div>
</div>
<div class="row bus_data" data-list="bus_data" data-level="1">
<div class="col-sm-6">
<div>
<strong class="route_name">{{route_name}}:</strong>
<span class="bus_time">{{time_to_arrive}}</span>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function update_bus(ele){
var $self = $(ele);
var bus_info_ids = $.map($self.find('.bus_info'),function(v){
return $(v).attr('id');
});
$.{{update_method}}( "{{update_url}}",
{
bus_info_ids: bus_info_ids
}, function( data ) {
$.each(data,function(k,v){
var bus_info = $self.find('#'+k);
var bus_route_names = $.map(bus_info.find('.route_name'),function(v1){
return $(v1).text().slice(0,-1)
});
var bus_time_span = bus_info.find('.bus_time');
$.each(v,function(k,v1){
var i = bus_route_names.indexOf(v1.route_name);
if (i>=0){
bus_time_span.eq(i).html(v1.time_to_arrive);
}
})
})
window.setTimeout(function(){
update_bus(ele);
},{{update_interval}});
});
}
function update_interval_bus(ele) {
window.setTimeout(function(){
update_bus(ele);
},{{update_interval}});
}
update_interval_bus($('#{{update_id}}[data-list="bus_infos"]')[0]);
</script>
<style type="text/css">
.bus_widget1 {margin-top: 1em;}
.bus_info {line-height: 1.8;}
</style>

View File

@ -0,0 +1,14 @@
{
"frontend": [
],
"widgets" : [
{
"filename" : "ruling_bus_widget1",
"name" : {
"zh_tw" : "1. 公車呈現樣式1",
"en" : "1. Bus layout 1"
},
"thumbnail" : "bus1_thumbs.png"
}
]
}

View File

@ -4,7 +4,10 @@
</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}}</a> <div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<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

@ -4,6 +4,9 @@
</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 widget-content-horizontal"> <li class="widget-content widget-content-horizontal">
<div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<a class="widget-content-title" href="{{link_to_show}}" target="_blank" title="{{title_text}}">{{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>

View File

@ -7,6 +7,14 @@
"en" : "1. List (widget-title, link, link description)" "en" : "1. List (widget-title, link, link description)"
}, },
"thumbnail" : "thumb.png" "thumbnail" : "thumb.png"
},
{
"filename" : "web_res_index2",
"name" : {
"zh_tw" : "2. 三欄式列表 ( 模組標題, 連結, 連結說明 )",
"en" : "2. 3 column List (widget-title, link, link description)"
},
"thumbnail" : "thumb.png"
} }
], ],
"widgets" : [ "widgets" : [

View File

@ -1,16 +1,21 @@
<div class="index-link index1"> <div class="index-link index1">
<h3 class="index-title"> <h1 class="index-title">
<span>{{page-title}}</span> <span>{{page-title}}</span>
</h3> </h1>
<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">
<a class="index-content-title" href="{{link_to_show}}" target="_blank" title="{{title_text}}">
<h4> <h4>
<a class="index-content-title" href="{{link_to_show}}" target="_blank">{{title}}</a> <div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
{{title}}
<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>
</h4> </h4>
<small class="index-context">{{context}}</small> <small class="index-context">{{context}}</small>
</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -4,13 +4,20 @@
</h1> </h1>
<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">
<a class="index-content-title" href="{{link_to_show}}" target="_blank" title="{{title_text}}">
<div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<h4> <h4>
<a class="index-content-title" href="{{link_to_show}}" target="_blank" title="{{title_text}}">{{title}}</a> <span class="link-title">
{{title}}
</span>
<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>
</h4> </h4>
<small class="index-context">{{context}}</small> <small class="index-context">{{context}}</small>
</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -1,3 +1,4 @@
<%= render 'shared/ie_html5_fix' %>
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<%= favicon_link_tag (current_site.favicon.blank? ? 'favicon.ico' : current_site.favicon.url) %> <%= favicon_link_tag (current_site.favicon.blank? ? 'favicon.ico' : current_site.favicon.url) %>
@ -8,14 +9,8 @@
<link rel="stylesheet" media="print" type="text/css" href="/assets/template/print.css"> <link rel="stylesheet" media="print" type="text/css" href="/assets/template/print.css">
<%= javascript_include_tag "plugin/modernizr.js"%> <%= javascript_include_tag "plugin/modernizr.js"%>
<%= javascript_include_tag "plugin/picturefill.min.js"%> <%= javascript_include_tag "plugin/picturefill.min.js"%>
<%= javascript_include_tag "jquery.min"%>
<%= javascript_include_tag "jquery_prefix"%>
<%= javascript_include_tag "plugin/jquery.mobile.custom.min.js"%> <%= javascript_include_tag "plugin/jquery.mobile.custom.min.js"%>
<%= javascript_include_tag "bootstrap.min"%> <%= javascript_include_tag "bootstrap.min"%>
<%= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20140415/jquery.cycle2.min.js"%>
<%= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20140415/jquery.cycle2.carousel.min.js"%>
<%= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20140415/jquery.cycle2.scrollVert.min.js"%>
<%= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20140415/jquery.cycle2.tile.min.js"%>
<%= javascript_include_tag "plugin/jquery.cycle2.video.min.js"%> <%= javascript_include_tag "plugin/jquery.cycle2.video.min.js"%>
<%= javascript_include_tag "plugin/jquery-bullseye-min.js"%> <%= javascript_include_tag "plugin/jquery-bullseye-min.js"%>
<%= javascript_include_tag "app"%> <%= javascript_include_tag "app"%>
@ -23,6 +18,5 @@
<script src="https://apis.google.com/js/platform.js" async defer></script> <script src="https://apis.google.com/js/platform.js" async defer></script>
<%= render_google_analytics %> <%= render_google_analytics %>
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]--> <![endif]-->

View File

@ -3,7 +3,7 @@
<a id="accesskey_sitemenu" accesskey="S" href="/<%= "#{locale.to_s}" %>/accesskey" title="Sitemenu">:::</a> <a id="accesskey_sitemenu" accesskey="S" href="/<%= "#{locale.to_s}" %>/accesskey" title="Sitemenu">:::</a>
<h3 class="sitemenu-title">{{widget_title}}</h3> <h3 class="sitemenu-title">{{widget_title}}</h3>
<ul data-list="pages" class="sitemenu-list level-1 list-unstyled" data-level="0"> <ul data-list="pages" class="sitemenu-list level-1 list-unstyled" data-level="0">
<li class="sitemenu-item level-1"> <li class="sitemenu-item level-1 {{active_class}}">
<a class="sitemenu-link level-1" href="{{url}}" target="{{target}}">{{page_name}}</a> <a class="sitemenu-link level-1" href="{{url}}" target="{{target}}">{{page_name}}</a>
<ul class="sitemenu-list level-2" data-list="children" data-level="1"> <ul class="sitemenu-list level-2" data-list="children" data-level="1">
<li class="sitemenu-item level-2" style="position: relative;"> <li class="sitemenu-item level-2" style="position: relative;">

View File

@ -3,7 +3,7 @@
<a id="accesskey_sitemenu" accesskey="S" href="/<%= "#{locale.to_s}" %>/accesskey" title="Sitemenu">:::</a> <a id="accesskey_sitemenu" accesskey="S" href="/<%= "#{locale.to_s}" %>/accesskey" title="Sitemenu">:::</a>
<h3 class="sitemenu-title">{{widget_title}}</h3> <h3 class="sitemenu-title">{{widget_title}}</h3>
<ul data-list="pages" class="sitemenu-list level-1 list-unstyled" data-level="0"> <ul data-list="pages" class="sitemenu-list level-1 list-unstyled" data-level="0">
<li class="sitemenu-item level-1"> <li class="sitemenu-item level-1 {{active_class}}">
<a class="sitemenu-link level-1" href="{{url}}" target="{{target}}">{{page_name}}</a> <a class="sitemenu-link level-1" href="{{url}}" target="{{target}}">{{page_name}}</a>
<ul class="sitemenu-list level-2" data-list="children" data-level="1"> <ul class="sitemenu-list level-2" data-list="children" data-level="1">
<li class="sitemenu-item level-2" style="position: relative;"> <li class="sitemenu-item level-2" style="position: relative;">