Merge branch 'master' into nccu

Conflicts:
	.gitignore
This commit is contained in:
Harry Bomrah 2014-11-13 16:48:09 +08:00
commit dd4c9fc587
76 changed files with 1247 additions and 1407 deletions

1
.gitignore vendored
View File

@ -23,6 +23,5 @@ public/assets/*
public/import_status.yml
public/announcement_link_widget_en.json
public/announcement_link_widget_zh_tw.json
vendor/announcement-test
vendor/news

View File

@ -0,0 +1,8 @@
(function($) {
$("document").ready(function(){
// Get link data-attribute and make the banner clickable
$('.w-ad-banner__slide').not('[data-link=""]').addClass('cursor').on("click",function(){
window.open($(this).data("link"),"_blank");
})
})
}(jQuery));

View File

@ -521,7 +521,7 @@ class Admin::MembersController < OrbitMemberController
if !params[:role_field_values].nil?
params[:role_field_values].each_with_index do |r,i|
field_value = r.last[:id].present?
@custom_field_value = AttributeValue.put_field_values(@member, r.last, r.last[:attribute_field_id], field_value)
@custom_field_value = AttributeValue.put_field_values(@member, r.last, r.last[:id], field_value)
end
end
if params[:edit_type]=="edit_privilege"

View File

@ -3,12 +3,11 @@ class MembersController < ApplicationController
page_roles = OrbitHelper.page_categories
page_role_status = OrbitHelper.page_role_status
fields_to_show = [
{"key"=>"job_title", "type"=>"role","sort_order"=>1},
{"key"=>"name", "type"=>"profile","sort_order"=>2,"link_to_show"=>true},
{"key"=>"discipline", "type"=>"role", "max_length"=>12},
{"key"=>"email", "type"=>"profile"},
{"key"=>"office_tel", "type"=>"profile"}
]
{"key"=>"name", "type"=>"profile","sort_order"=>2,"link_to_show"=>true},
{"key"=>"discipline", "type"=>"role", "max_length"=>12},
{"key"=>"email", "type"=>"profile"},
{"key"=>"office_tel", "type"=>"profile"}
]
if OrbitHelper.member_sort_position
sort = "data['list_order']"
@ -37,10 +36,12 @@ class MembersController < ApplicationController
role_list = []
roles.each do |role|
attribute_field = AttributeField.where(:key => 'job_title', :role_id => role['id']).first
role_fields_to_show = [{"id"=> attribute_field.id.to_s, "key"=>"job_title", "type"=>"role","sort_order"=>1}] + fields_to_show if !attribute_field.blank?
status_list = []
if !role['status'].blank?
role['status'].each do |status|
member_profiles = get_members_by_status(status, sort, fields_to_show)
member_profiles = get_members_by_status(status, sort, role_fields_to_show)
status_list << { "status-title" => status.title, "members" => member_profiles } if !member_profiles.blank?
end
else
@ -49,7 +50,7 @@ class MembersController < ApplicationController
role_status_ids = role_status.collect{|status| status.id.to_s}
role_status.each do |status|
member_profiles = get_members_by_status(status, sort, fields_to_show)
member_profiles = get_members_by_status(status, sort, role_fields_to_show)
next if member_profiles.blank?
status_list << { "status-title" => status.title, "members" => member_profiles }
end
@ -97,26 +98,44 @@ class MembersController < ApplicationController
params = OrbitHelper.params
member = MemberProfile.find_by(uid: params[:uid])
profile_data = []
#role status
member.roles.where(:disabled => false).asc("_id").collect do |role|
role_status = member.role_statuses.where(role_id: role.id).map{|t|t.title.to_s}.join(',') rescue ''
profile_data = profile_data.push({"key"=>"role_status", "title"=>"", "value"=> role_status, "title_class"=>"member-data-title-role-status", "value_class"=>"member-data-value-role-status"}) if !role_status.blank?
attribute_field = role.attribute_fields.where(:key => 'job_title').first
profile_data = profile_data + member_data(member, [{"id"=> attribute_field.id.to_s, "key"=> attribute_field.key, "type"=>"role"}]) if !attribute_field.blank? and !attribute_field.to_show.blank?
end
fields_to_show = [
{"key"=>"job_title", "type"=>"role"},
{"key"=>"name", "type"=>"profile"},
{"key"=>"office_tel", "type"=>"profile"},
{"key"=>"fax", "type"=>"custom"},
{"key"=>"email", "type"=>"profile"},
{"key"=>"discipline", "type"=>"role"},
{"key"=>"research_expertise", "type"=>"role"},
{"key"=>"reference_website_of_individual_publication", "type"=>"role"},
{"key"=>"reference_website_of_individual_research", "type"=>"role"},
{"key"=>"autobiography", "type"=>"profile"},
{"key"=>"website", "type"=>"custom"},
{"key"=>"experience", "type"=>"custom"},
{"key"=>"mobile", "type"=>"custom"}
]
{"key"=>"name", "type"=>"profile"},
{"key"=>"office_tel", "type"=>"profile"},
{"key"=>"email", "type"=>"profile"}
]
profile_data = profile_data + member_data(member, fields_to_show)
profile_data = member_data(member, fields_to_show)
profile_fields_to_show = []
roles = member.roles.collect{|role| {"role" => role.title} }
# member info
infos = MemberInfo.order('created_at DESC')
infos.each do |info|
info.member_profile_fields.each do |member_profile_field|
profile_fields_to_show << {"id"=> member_profile_field.id.to_s, "key"=> member_profile_field.key, "type"=>"custom"} if !member_profile_field.to_show.blank?
end
end
profile_data = profile_data + member_data(member, profile_fields_to_show)
# member role
role_fields_to_show = []
member.roles.where(:disabled => false).asc("_id").collect do |role|
role.attribute_fields.where(:key.ne => 'job_title').asc("_id").each do |attribute_field|
role_fields_to_show << {"id"=> attribute_field.id.to_s, "key"=> attribute_field.key, "type"=>"role"} if !attribute_field.to_show.blank?
end
end
profile_data = profile_data + member_data(member, role_fields_to_show)
# member plugin
plugins = OrbitApp::Plugin::Registration.all rescue nil
plugin_list = plugins.collect.with_index do |plugin, idx|
intro = PersonalPluginIntro.find_by(member_profile_id: member.id, _type: "#{plugin.app_name}Intro") rescue nil
@ -144,7 +163,6 @@ class MembersController < ApplicationController
plugin_list = plugin_list.reject{|plugin| plugin['plugin_data'].blank?}
{
"roles" => roles,
"plugins" => plugin_list,
"profile_data" => profile_data,
"data" => {
@ -162,9 +180,17 @@ class MembersController < ApplicationController
when 'profile'
field_data = member.get_attribute_data(field) rescue {}
when 'custom'
field_data = member.member_profile_field_values.find_by(:key=>field['key']).get_field_value rescue {}
if !field['id'].blank?
field_data = member.member_profile_field_values.find_by(:member_profile_field_id=>field['id'],:key=>field['key']).get_field_value rescue {}
else
field_data = member.member_profile_field_values.find_by(:key=>field['key']).get_field_value rescue {}
end
when 'role'
field_data = member.attribute_values.find_by(:key=>field['key']).get_field_value rescue {}
if !field['id'].blank?
field_data = member.attribute_values.find_by(:attribute_field_id=>field['id'],:key=>field['key']).get_field_value rescue {}
else
field_data = member.attribute_values.find_by(:key=>field['key']).get_field_value rescue {}
end
end
next if field_data.blank? or field_data['value'].blank?

View File

@ -447,7 +447,7 @@ class PagesController < ApplicationController
end
def set_edit_mode
@dataApi = nil
@dataApi = "frontend"
@editmode = false
if !current_user.nil? and current_user.is_admin?
if params[:editmode] == "on"

View File

@ -194,8 +194,8 @@ module ApplicationHelper
item.each do |key,value|
if !value.kind_of?(Array)
value = value.nil? ? "" : value
element = element.gsub("{{#{key}}}",value.to_s)
element = element.gsub("%7B%7B#{key}%7D%7D",value.to_s)
element = element.gsub("{{#{key}}}",value.to_s.html_safe)
element = element.gsub("%7B%7B#{key}%7D%7D",value.to_s.html_safe)
element = render_link_to_edit(element, value) if key.eql?("url_to_edit")
end
end
@ -235,8 +235,8 @@ module ApplicationHelper
extras["page-title"] = Page.find_by(:page_id => params[:page_id]).name rescue "" if !extras["page-title"]
extras.each do |key,value|
value = value.nil? ? "" : value
html = html.gsub("{{#{key}}}",value.to_s)
html = html.gsub("%7B%7B#{key}%7D%7D",value.to_s)
html = html.gsub("{{#{key}}}",value.to_s.html_safe)
html = html.gsub("%7B%7B#{key}%7D%7D",value.to_s.html_safe)
end
total_pages = data['total_pages'].to_i rescue 1
if total_pages > 1
@ -286,8 +286,8 @@ module ApplicationHelper
data.each do |key,value|
next if key.eql? 'impressionist'
value = value.nil? ? "" : value
el = el.gsub("{{#{key}}}",value.to_s)
el = el.gsub("%7B%7B#{key}%7D%7D",value.to_s)
el = el.gsub("{{#{key}}}",value.to_s.html_safe)
el = el.gsub("%7B%7B#{key}%7D%7D",value.to_s.html_safe)
end
el.html_safe
else

View File

@ -1,47 +1,94 @@
(function($) {
var response = function(width, element, fns) {
var wR = this,
width = width,
fns = fns,
timer = 0,
lastVal,
lastDir;
wR.element = element;
wR.run = function() {
if(window.innerWidth > width){
thisDir = true;
}else{
thisDir = false;
"use strict"
// Init functions
function init () {
var utils = {
}
// Necessary for Responsive images
function bullEye() {
$(".bullseye").bullseye({
fadeEffect: false
});
}
// Adding class to submenu that has dropdown items
function submenuFix () {
var item$ = $('.submenu__item.level-1');
var itemLen = item$.length;
var list$ = item$.find('.submenu__list.level-2');
for( var i=0; i<itemLen; i++ ) {
if( list$.eq(i).find('li').length ) {
list$
.eq(i)
.addClass('dropdown');
}
}
}
// Main navigation dropdown
function dropdown () {
var navItemLevel1$ = $('.main-nav-item.level-1');
var dropdownMenu$ = $('.dropdown-menu.level-2');
// Adding class if nav item has dropdown
$(navItemLevel1$)
.has('.dropdown-menu')
.children('a')
.addClass('has-dropdown-menu');
// Hide all dropdowns when click on any HTML elements
$(document).on('click', function() {
$('.dropdown-menu.level-2')
.addClass('hide')
.removeClass('show');
})
// Hide all dropdown after page load
dropdownMenu$
.addClass('hide')
.removeClass('show');
$('.has-dropdown-menu').on('click', function () {
if( $(this).hasClass('has-dropdown-menu') ) {
if( $(this).next('.dropdown-menu').hasClass('show') ) {
dropdownMenu$.addClass('hide');
$(this)
.next('.dropdown-menu')
.removeClass('show')
.addClass('hide')
} else if ( $(this).next('.dropdown-menu').hasClass('hide') ) {
dropdownMenu$.addClass('hide');
dropdownMenu$.removeClass('show');
dropdownMenu$.addClass('hide');
$(this)
.next('.dropdown-menu')
.removeClass('hide')
.addClass('show')
}
}
return false;
})
}
// Targeting internal page
if( $('body').attr('class') !== 'page-main' ) {
submenuFix();
}
dropdown();
bullEye();
}
if(lastDir != thisDir) {
if(window.innerWidth > width) {
fns.over.call();
} else {
fns.less.call();
}
}
lastDir = thisDir;
};
$(window).resize(function(event) {
clearTimeout(timer);
timer = setTimeout(wR.run(), 3000);
});
}
$(function() {
// 當有次選單時自動加入icon指標
$('.modules-menu-level-1, .modules-menu-level-2').before('<i class="fa fa-angle-down"></i>');
$('.modules-menu').on('click', '.fa', function(event) {
$(this).next('ul').slideToggle(300);
});
$(document).ready(function($) {
init();
});
// 移除當主選單在小螢幕時次選單被點擊後的display屬性
var menuLevel1 = new response(786, $('.modules-menu-level-1'), {
"over": function() {menuLevel1.element.removeAttr('style');},
"less": function() {return false}
});
var menuLevel2 = new response(786, $('.modules-menu-level-2'), {
"over": function() {menuLevel2.element.removeAttr('style');},
"less": function() {return false}
});
});
}(jQuery));

View File

@ -0,0 +1 @@
!function($){"use strict";var t={fadeEffect:!0,effectTime:.5},i=$(window),e=function(t,i){var e=document.createElement("img"),s;t.data("bullseyeImage")?(t.html('<img src="'+t.data("bullseyeImage")+'">'),s=t.data("bullseyeImage")):(s=t.find("img").first().attr("src"),t.data("bullseyeImage",s)),i.fadeEffect&&t.find("img").first().css({opacity:0}),e.src=s,e.onload=function(){n(t,i)}},n=function(t,i){var e=t.find("img").first(),n={position:"relative",overflow:"hidden"},o={position:"absolute",top:0,right:0,bottom:0,left:0,margin:"auto",width:"100%",height:"auto"},a={start:{opacity:1,"-webkit-transition":"opacity "+i.effectTime+"s ease-in-out","-moz-transition":"opacity "+i.effectTime+"s ease-in-out","-o-transition":"opacity "+i.effectTime+"s ease-in-out",transition:"opacity "+i.effectTime+"s ease-in-out"},end:{opacity:"","-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}};t.css(n),e.css(o),s(t),i.fadeEffect&&e.css(a.start).on("transitionend",function(){$(this).css(a.end)})},s=function(t){var i=t.find("img").first(),e=t.innerHeight(),n,s;n=i.height(),e>n?(s=e/n,i.css({"-webkit-transform":"scale("+s+")","-moz-transform":"scale("+s+")","-o-transform":"scale("+s+")",transform:"scale("+s+")"})):i.css({"-webkit-transform":"","-moz-transform":"","-o-transform":"",transform:""})},o=function(t,n){e(t,n),i.on("resize",function(){s(t)})};$.fn.bullseye=function(i){var e=$.extend({},t,i);return this.each(function(){var t=$(this);o(t,e)})}}(window.jQuery);

View File

@ -1,143 +0,0 @@
/* ===================================================
* jquery-lite-image-resize v.1.1
* https://github.com/RayChang/jquery-lite-image-resize
* ===================================================
* How to use ?
*
* HTML element closest to the image to add class "resizeimg".
*
* Example:
* <div class="resizeimg">
* <img src="images url" />
* </div>
*
* Or you can use:
* $('your class').rsImg();
*
* Note : HTML structure must be a structure like the example above.
*
*/
!function ($) {
"use strict";
var ResizeImg = function(element) {
var _oldW = [],
_timer = 0,
$self = this;
$self.element = element;
$self.element.data('exists', true);
$self.element.css({
'position': 'relative',
'overflow': 'hidden',
});
$self.element.each(function(index, el) {
_oldW.push($(el).innerWidth());
$self.resize($(el), $(el).find('img').eq(0));
});
function windowResize() {
clearTimeout(_timer);
_timer = setTimeout(function() {
$self.element.each(function(i, el) {
if(_oldW[i] != $(this).innerWidth()) {
_oldW[i] = $(this).innerWidth();
$self.resize($(el), $(el).find('img').eq(0));
}
});
}, 500);
}
window.onresize = windowResize;
}
ResizeImg.prototype.resize = function(element, img) {
var _imgW, _imgH, _imgScale,
_elW = element.innerWidth(),
_elH = element.innerHeight(),
_elScale = _elW/_elH,
$image = document.createElement("img");
img.removeAttr('style');
$image.src = img.attr('src');
$image.onload = function() {
_imgW = $image.width,
_imgH = $image.height,
_imgScale = _imgW/_imgH;
if(_imgScale < 1) {
if(_elScale < 1) {
if(_elScale > _imgScale) {
img.css(scale().landscape);
} else {
img.css(scale().portrait);
};
} else {
img.css(scale().landscape);
};
};
if(_imgScale > 1) {
if(_elScale > 1) {
if(_elScale > _imgScale) {
img.css(scale().landscape);
} else {
img.css(scale().portrait);
};
} else {
img.css(scale().portrait);
};
};
if(_imgScale == 1) {
if(_elScale < 1) {
img.css(scale().portrait);
} else if(_elScale > 1) {
img.css(scale().landscape);
} else {
img.css(scale().center);
};
};
img.fadeTo(500, 1);
}
function scale() {
return {
portrait: {
'position': 'absolute',
'height': '100%',
'width': 'auto',
'max-width': 'none',
'left': '50%',
'top': 0,
'margin-left': _imgW*(_elH/_imgH)/-2
},
landscape: {
'position': 'absolute',
'height': 'auto',
'max-height': 'none',
'width': '100%',
'left': 0,
'top': '50%',
'margin-top': _imgH*(_elW/_imgW)/-2
},
center: {
'position': 'absolute',
'height': '100%',
'width': '100%',
'top': 0,
'left': 0
}
}
}
}
$.fn.rsImg = function () {
var $this = $(this), resizeImg;
if(!$this.data('exists')) {
$this.find('img').fadeTo(1, 0);
resizeImg = new ResizeImg($this);
}
};
$(function() {
$('.resizeimg').rsImg();
});
}(window.jQuery);

File diff suppressed because one or more lines are too long

View File

@ -28,4 +28,9 @@
border-width: $height 0 0 $width;
border-color: transparent transparent transparent $color;
}
}
@mixin list-reset() {
margin: 0;
padding: 0;
list-style: none;
}

View File

@ -0,0 +1,79 @@
$theme-white: #fff;
$orbit-bg-color: #333;
$orbit-bg-hover-color: #0095CF;
$orbit-border-color: #444;
body {
#orbit-bar .orbit-bar-inner > ul > li:hover > a,
#orbit-bar .orbit-bar-inner > ul > li:hover > span,
#orbit-bar .orbit-bar-inner > ul > li:hover > label,
#orbit-bar .orbit-bar-inner > ul > li > ul li:hover,
#orbit-bar .orbit-bar-inner > ul > li > ul li.active {
background: $orbit-bg-hover-color;
}
#orbit-bar .orbit-bar-inner {
background: $orbit-bg-color;
}
#orbit-bar .orbit-bar-search-sign-language #search input[type="search"] {
margin-bottom: 0;
font-size: 0.8rem;
}
#orbit-bar #search {
border-right: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
}
@media screen and (max-width: 550px) {
body #orbit-bar .orbit-bar-search-sign-language #search input[type="search"] {
width: 140px;
}
}
@media (max-width: 479px) {
body {
#orbit-bar ul.orbit-bar-search-sign-language > li + li:hover > a,
#orbit-bar ul.orbit-bar-search-sign-language > li + li:hover > span {
background-color: $orbit-bg-color;
}
#orbit-bar .orbit-bar-inner > label {
border-color: $theme-white;
color: $theme-white;
}
#orbit-bar .orbit-bar-inner > ul {
background: $orbit-bg-color;
}
#orbit-bar .orbit-bar-inner > ul > li > ul li:hover,
#orbit-bar .orbit-bar-inner > ul > li > ul li.active {
background: $orbit-bg-hover-color;
}
#orbit-bar .orbit-bar-inner > ul > li > ul a {
color: $theme-white;
}
#orbit-bar .orbit-bar-inner > ul > li > ul li.divider {
background: none;
display: none;
}
#orbit-bar ul.orbit-bar-search-sign-language > li {
background: none;
}
#orbit-bar ul.orbit-bar-search-sign-language > li {
display: block;
}
#orbit-bar ul.orbit-bar-search-sign-language > li + li {
border-top: 1px solid $orbit-border-color;
border-right: 1px solid $orbit-border-color;
box-sizing: border-box;
box-shadow: none;
}
#orbit-bar ul.orbit-bar-search-sign-language > li + li:hover > ul {
background-color: $orbit-bg-color;
}
.orbit-bar-logo + ul > li {
border-bottom: 1px solid $orbit-border-color;
}
}
}

View File

@ -1,166 +0,0 @@
.w-annc-weblink {
.pagination {
position: absolute;
top: 8px;
right: 0;
margin: 0;
a {
text-indent: -9999px;
display: inline-block;
width: 14px;
height: 14px;
border-radius: 3px;
margin-left: -2px;
color: #cc0033;
background-color: #fff;
border: 1px solid #dcdcdc;
font-family: 'entypo';
text-align: center;
position: relative;
&.next {
&:before {
content: "\e0d4";
}
}
&.prev {
color: #6C6C6C;
&:before {
content: "\e0d1";
}
}
&:before {
text-indent: 0;
position: absolute;
top: 0;
left: 0;
width: 12px;
height: 12px;
line-height: 12px;
}
}
}
.tab {
padding: 1em;
position: relative;
z-index: 1;
min-height: 240px;
}
.tab-list {
position: relative;
.tab-item {
position: relative;
width: 105px;
padding: 0.5em 0;
z-index: 2;
a {
display: block;
padding: 0.3em 0.5em;
margin-right: 1em;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
color: #333;
text-decoration: none;
line-height: 14px;
}
&.active,
&:hover {
a {
color: #000;
font-weight: bold;
background: transparent url(/assets/tag.png) left -6px no-repeat;
&:after {
content: "";
position: absolute;
top: 0.5em;
right: 0;
width: 1em;
height: 21px;
background: transparent url(/assets/tag.png) right -6px no-repeat;
}
}
}
&:hover {
a {
background: transparent url(/assets/tag.png) left -36px no-repeat;
&:after {
background: transparent url(/assets/tag.png) right -36px no-repeat;
}
}
}
}
}
.tab-body {
display: none;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 0;
&.active {
display: block;
z-index: 1;
}
}
.annc-content {
position: absolute;
top: 0;
right: 140px;
left: 115px;
background-color: #fff;
.annc-heading {
line-height: 1.5em;
height: 1.6em;
margin: 0;
font-size: 18px;
border-bottom: 1px solid #C2C2C2;
.annc-more {
padding-top: 0;
color: #6C6C6C;
text-align: left;
font-weight: normal;
}
}
}
.wlink-content {
position: absolute;
top: 0;
right: 0;
width: 120px;
.wlink-heading {
height: 1.6em;
margin: 0;
line-height: 1.6em;
font-size: 18px;
padding-bottom: 0.3em;
border-bottom: 1px solid #C2C2C2;
}
}
.list {
margin: 0;
padding: 0;
list-style: none;
.list-item {
display: none;
padding: 0.5em 0;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
border-bottom: 1px solid #ccc;
& > a {
color: #333;
&:hover {
color: #cc0033;
}
}
}
}
a {
display: inline;
color: #6C6C6C;
line-height: 2em;
outline: none;
}
}

View File

@ -1,37 +0,0 @@
// Title
.unity-title {
margin-bottom: 1em;
border-bottom: 1px solid $theme-gray-light;
span {
display: inline-block;
margin-bottom: -2px;
border-bottom: 3px solid $brand-primary;
}
.layout-footer & {
margin-bottom: 10px;
border-bottom: none;
span {
display: inline;
margin-bottom: 0;
border-bottom: none;
}
}
}
// More
.unity-more {
white-space: nowrap;
color: $brand-primary;
text-decoration: underline;
}
// Status
.status {
background-color: $theme-gray-light;
&.status-top {
background-color: $brand-primary;
}
&.status-hot {
background-color: $brand-danger;
}
}

View File

@ -1,24 +1,72 @@
@charset "utf-8";
// Base Color
$theme-gray: #495054;
$theme-gray-light: #cecece;
$theme-gray-lighter: #f3f3f3;
$theme-gray-dark: #363636;
$theme-gray-darker: #242424;
$theme-gray: #495054 !default;
$theme-gray-light: #cecece !default;
$theme-gray-lighter: #f3f3f3 !default;
$theme-gray-dark: #363636 !default;
$theme-gray-darker: #242424 !default;
$theme-color-main: #47bab5 !default;
$theme-color-second: #5bc0de !default;
$theme-color-third: #ed4c43 !default;
$theme-white: #fff;
$theme-color-main: #47bab5;
$theme-color-second: #5bc0de;
$theme-color-third: #ed4c43;
.response-content {
position: relative;
@media (min-width: $screen-sm) {
width: 100%;
}
@media (min-width: $screen-md) {
width: 970px;
}
@media (min-width: $screen-lg) {
width: 1100px;
}
}
$theme-red: #d20001;
$theme-blue: #003d7e;
// Font stacks
$main-font: Arial, "微軟正黑體", "Helvetica Neue", Helvetica, sans-serif;
$sub-font: Arial, "新細明體", "Helvetica Neue", Helvetica, sans-serif;
//
// Modules
// --------------------------------------------------
// ## commonly use in all widgets
// Font sizes
$w-widget-title-font-size: 1.5rem;
// Colors
$w-border-color: $theme-gray-lighter;
//
// AD banner Module
// --------------------------------------------------
// Font sizes
$w-caption-font-size: 1.4rem;
$w-caption-desc: 0.85rem;
//
// Announcement Module
// --------------------------------------------------
// Font sizes
$w-title-font-size-small: 0.75rem;
$w-subtitle-font-size: 0.75rem;
$w-meta-font-size: 0.75rem;
$w-table-th-font-size: 0.75em;
$w-table-td-font-size: 0.75em;
$i-title-font-size-large: 2em;
// colors
$link-color: $theme-color-main;
$link-hover-color: lighten($theme-color-main, 10%);
$table-th-bgcolor: $theme-color-main;
//
// Archive Module
// --------------------------------------------------
// Font sizes
$w-item-heading-font-size: 0.85rem;

View File

@ -50,7 +50,7 @@
font-size: 2em;
}
.site-logo {
width: auot;
width: auto;
height: 100%;
margin-right: 0.5em;
float: left;

View File

@ -1,105 +1,155 @@
.widget-adBanner {
.widget-adBanner-content {
@charset "utf-8";
//
// Widget
//
// Widget
// ## gerenral styles
.w-ad-banner {
position: relative;
.cursor {
cursor: pointer;
}
}
// Widget 1
.ad-banner-widget-1 {
.w-ad-banner__wrap {
width: 100%;
.slide-img {
@include size(100%, 100%);
overflow: hidden;
img {
@include size(100%, auto);
}
}
}
.widget-adBanner-overlay {
display: none !important;
right: 0;
bottom: 0;
left: 0;
margin: 0 auto;
padding: 1em;
color: $theme-gray-light;
z-index: 999;
.caption {
.w-ad-banner__slide {
width: 100%;
}
.w-ad-banner__image {
width: 100%;
height: auto;
}
.w-ad-banner__caption {
background: $theme-color-main;
color: $theme-white;
position: absolute;
left: 2em;
top: 5em;
width: 300px;
z-index: 200;
padding: 1.5em 2em;
h2 {
font-family: $main-font;
font-size: $w-caption-font-size;
}
p {
font-family: $main-font;
line-height: 1.6;
font-size: $w-caption-desc;
}
}
.w-ad-banner__pager {
@include list-reset();
position: absolute;
right: 1em;
bottom: 1em;
z-index: 100;
li {
display: inline-block;
width: 35%;
padding: 1em;
background-color: rgba(darken($theme-gray-darker, 20%), .6);
h2 {
margin-top: 0;
color: $brand-info;
font-family: 'Droid Sans';
}
p {
color: $theme-gray-light;
overflow: hidden;
}
}
.navigation {
margin: 0;
padding: 0;
color: $theme-gray-light;
list-style: none;
text-align: center;
li {
display: inline-block;
margin: .2em;
cursor: pointer;
&.active {
i {
&:before {
content: "\f111";
}
}
}
}
a {
background: $theme-color-main;
display: inline-block;
margin-right: 0.25em;
width: 0.8em;
height: 0.8em;
border-radius: 50%;
opacity: 0.5;
}
@media (min-width: $screen-sm) {
display: block !important;
}
@media (min-width: $screen-md) {
.caption {
width: 30%;
margin-bottom: 2em;
}
.active-slide a{
opacity: 1;
}
}
&.widget1,
&.widget2, {
.widget-adBanner-overlay {
position: absolute;
@extend .response-content;
}
// Widget 2
.ad-banner-widget-2 {
.w-ad-banner__wrap {
width: 100%;
}
.w-ad-banner__slide {
width: 100%;
}
.w-ad-banner__image {
width: 100%;
height: auto;
}
.w-ad-banner__pager {
@include list-reset();
position: absolute;
right: 1em;
bottom: 1em;
z-index: 100;
li {
display: inline-block;
}
a {
background: $theme-color-main;
display: inline-block;
margin-right: 0.25em;
width: 0.8em;
height: 0.8em;
border-radius: 50%;
opacity: 0.5;
}
.active-slide a{
opacity: 1;
}
}
&.widget1 {
.widget-adBanner-content {
.slide-img {
max-height: 200px;
@media (min-width: $screen-sm) {
max-height: 300px;
}
@media (min-width: $screen-md) {
max-height: 430px;
}
}
}
}
// Widget 3
.ad-banner-widget-3 {
.w-ad-banner__wrap {
width: 100%;
}
&.widget2 {
.widget-adBanner-content {
.slide-img {
max-height: 200px;
@media (min-width: $screen-md) {
max-height: 300px;
}
}
}
.w-ad-banner__slide {
width: 100%;
}
&.widget3 {
.widget-adBanner-content {
.slide-img {
max-height: 200px;
}
.w-ad-banner__image {
width: 100%;
height: auto;
}
.w-ad-banner__pager {
@include list-reset();
position: absolute;
right: 1em;
bottom: 1em;
z-index: 100;
li {
display: inline-block;
}
.widget-adBanner-overlay {
position: absolute;
a {
background: $theme-color-main;
display: inline-block;
margin-right: 0.25em;
width: 0.8em;
height: 0.8em;
border-radius: 50%;
opacity: 0.5;
}
.active-slide a{
opacity: 1;
}
}
}

View File

@ -1,210 +1,260 @@
// Announcement MODULES
.widget-announcement {
.widget-title {
@extend .unity-title;
}
.widget-subtitle {
color: lighten($theme-gray, 20%);
}
.widget-content {
margin-bottom: 2em;
}
@charset "utf-8";
// 對應_wudget1.html.erb
&.wudget1 {
.widget-content {
& + .widget-content {
border-top: 1px dotted $theme-gray-light;
.widget-content-inner {
padding-top: 2em;
}
}
.widget-pic {
height: 180px;
margin: 0 15px 1em;
}
.date {
display: block;
color: darken($theme-gray-light, 5%);
i {
color: $brand-primary;
}
}
.widget-content-title {
margin-bottom: 1em;
font-size: 1.5em;
a {
color: $theme-gray-dark;
text-decoration: none;
}
}
@media (min-width: $screen-sm) {
.widget-pic {
height: 150px;
margin: 0 0 1em;
}
.widget-content-inner {
margin: 0;
}
.widget-content-title {
margin-bottom: 10px;
}
}
}
// Font sizes
$w-title-font-size-large: 1.5rem;
$w-title-font-size-small: 0.75rem;
$w-subtitle-font-size: 0.75rem;
$w-meta-font-size: 0.75rem;
// .layout-content .aside 的樣式
.layout-content .aside & {
.widget-part,
.widget-pic {
width: auto;
float: none;
@media (min-width: $screen-sm) {
padding: 0;
}
}
}
}
$w-table-th-font-size: 0.75em;
$w-table-td-font-size: 0.75em;
// 對應_wudget2.html.erb
&.wudget2 {
.widget-content {
.widget-pic {
height: 180px;
.date {
position: absolute;
bottom: 1em;
left: 0;
padding: 0.5em 0.8em;
font-size: 0.8em;
background-color: $brand-primary;
color: #fff;
}
}
.widget-content-title {
margin-bottom: 1em;
a {
color: $brand-primary;
text-decoration: none;
}
}
$i-title-font-size-large: 2em;
// .layout-content .aside 的樣式
.layout-content .aside & {
width: auto;
float: none;
}
}
}
.dotted {
margin-top: 0;
}
.more {
@extend .unity-more;
}
}
// colors
$white: white;
$red: #d20001;
$blue: #003d7e;
$gray: #414141;
// Announcement INDEX
.index-announcement {
.index-title {
@extend .unity-title;
}
&.index1 {
.index-content {
margin-bottom: 2em;
.date {
display: block;
margin-bottom: 1em;
color: darken($theme-gray-light, 5%);
i {
color: $brand-primary;
}
}
}
.index-content-inner {
border: 1px solid darken($theme-gray-lighter, 2%);
border-radius: 4px;
@include box-shadow(2px 2px 3px rgba($theme-gray-lighter, .8));
}
.index-pic {
height: 150px;
@include border-top-radius(3px);
}
.index-part {
padding: 1em;
}
.index-content-title {
margin-top: 0;
@media (min-width: $screen-sm) {
width: 100%;
height: 1.2em;
line-height: 1.2em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
a {
color: $theme-gray;
$link-color: #366aa6;
$link-hover-color: #608ec3;
$table-th-bgcolor: $theme-color-main;
// ****************** Widget ******************
// Announcement widget 1
.w-announcement {
a {
text-decoration: none;
}
}
.index-subtitle {
color: lighten($theme-gray, 20%);
@media (min-width: $screen-sm) {
position: relative;
line-height: 1.5em;
overflow: hidden;
height: 1.5em*3;
max-height: 1.5em*3;
&:after {
content: "";
position: absolute;
bottom: -1.5em;
left: 0;
background-color: #eee;
@include size(100%, 1.5em);
@include box-shadow(0 -0.75em 10px #FFF);
}
}
.w-announcement__widget-title {
font-family: $main-font;
font-size: $w-title-font-size-large;
color: $gray;
margin: 0.5rem 0;
}
.w-announcement__list {
@include list-reset;
}
.w-announcement__item {
margin-bottom: 1em;
padding-bottom: 1em;
border-bottom: 1px dashed lighten($gray, 65%);
}
.w-announcement__pic-wrap {
padding-bottom: 33.3%;
margin-bottom: 1em;
}
.w-announcement__status-wrap {
display: inline-block;
}
.w-announcement__status {
font-size: $w-meta-font-size;
color: $white;
display: inline-block;
border-radius: 2px;
padding: 6px 10px;
}
.w-announcement__status.status-top {
background-color: $blue;
}
.w-announcement__status.status-hot {
background-color: $red;
}
.w-announcement__postdate {
font-size: $w-meta-font-size;
color: $gray;
}
.w-announcement__title {
font-family: $main-font;
margin: 15px 0 8px 0;
line-height: 1.4;
}
.w-announcement__link {
font-family: $main-font;
color: $link-color;
}
.w-announcement__link:hover {
color: $link-hover-color;
}
.w-announcement__subtitle {
font-family: $sub-font;
font-size: $w-subtitle-font-size;
line-height: 1.6;
}
.w-announcement__more {
color: $link-color;
font-size: 0.875rem;
}
.w-announcement__more:hover {
color: $link-hover-color;
}
}
}
// Announcement widget 2
.annc-widget-2 {}
// Announcement widget 3
.annc-widget-3 {}
// Announcement widget 4
.annc-widget-4 {
.w-announcement__postdate {
display: inline-block;
margin-right: 0.5rem;
}
.w-announcement__title {
font-size: $w-title-font-size-small;
display: inline-block;
margin: 0;
}
.w-announcement__item {
margin-bottom: 0.5rem;
padding-bottom: 0.5rem;
}
}
// Announcement widget 5
.annc-widget-5 {
.w-announcement__item {
@include clearfix;
}
.w-announcement__pic-wrap {
float: left;
width: 32%;
margin-right: 3%;
}
.w-announcement__content-wrap {
float: left;
width: 65%;
}
}
// Announcement widget 6
.annc-widget-6 {
.w-announcement__title {
font-size: $w-title-font-size-small;
display: inline-block;
margin: 0;
}
.w-announcement__postdate {
display: inline-block;
margin-right: 0.5rem;
}
.w-announcement__item {
margin-bottom: 0.5rem;
padding-bottom: 0.5rem;
}
}
// Announcement widget 7
.annc-widget-7 {
.w-announcement__postdate {
margin-bottom: 0.5rem;
}
.w-announcement__title {
font-size: $w-title-font-size-small;
margin: 0;
}
}
// Announcement widget 8 -- table
.w-announcement--table {
.w-announcement__table {
width: 100%;
}
.w-announcement__th {
font-size: $w-table-th-font-size;
color: $white;
background: $table-th-bgcolor;
white-space: nowrap;
padding: 0.5rem 0.8rem;
}
td {
font-size: $w-table-td-font-size;
border-bottom: 1px solid lighten($gray, 70%);
padding: 0.5rem;
}
.w-announcement__status {
margin-bottom: 0.3rem;
}
}
// Announcement widget 9 -- table
.annc-widget-9 {}
// Announcement widget 10 -- table
.annc-widget-10 {}
// Announcement widget 11 -- table
.annc-widget-11 {}
// Announcement widget 12 -- table
.annc-widget-12 {}
// Announcement widget 12 -- table
.annc-widget-13 {}
// ****************** index ******************
// Announcement index 1 -- table
.i-announcement--table {
.i-announcement__table {
width: 100%;
}
.i-announcement__th {
font-size: $w-table-th-font-size;
color: $white;
background: $table-th-bgcolor;
white-space: nowrap;
padding: 0.5rem 0.8rem;
}
td {
font-size: $w-table-td-font-size;
border-bottom: 1px solid lighten($gray, 70%);
padding: 0.5rem;
}
.i-announcement__status {
margin-bottom: 0.3rem;
}
}
// Announcement index 2
.i-announcement {
.i-announcement__title {
font-size: $i-title-font-size-large;
font-family: $main-font;
}
.i-announcement__list {
@include list-reset;
}
.i-announcement__pic-wrap {
margin-bottom: 1em;
}
.i-announcement__pic {
}
.i-announcement__status {
font-size: $w-meta-font-size;
color: $white;
display: inline-block;
border-radius: 2px;
padding: 6px 10px;
}
.i-announcement__status.status-top {
background-color: $blue;
}
.i-announcement__status.status-hot {
background-color: $red;
}
}
// Announcement SHOW
.show-announcement {
.show-title {
@extend .unity-title;
}
// .show-content {
// padding-right: 0;
// padding-left: 0;
// .img {
// display: inline-block;
// width: 100%;
// height: auto;
// opacity: (0.8);
// -webkit-filter: grayscale(100%) brightness(1.2);
// -moz-filter: grayscale(100%) brightness(1.2);
// filter: grayscale(100%) brightness(1.2);
// @include transition(all 0.2s ease);
// }
// .show-content-inner {
// position: relative;
// padding: 2px;
// z-index: 0;
// @include scale(1);
// @include transition(all 0.2s ease);
// &:hover {
// z-index: 1;
// @include scale(1.1);
// .img {
// opacity: (1);
// -webkit-filter: grayscale(0%) brightness(1);
// -moz-filter: grayscale(0%) brightness(1);
// filter: grayscale(0%) brightness(1);
// }
// }
// }
// }
.post-metadata {
border-bottom: 1px solid $theme-gray-light;
@include clearfix();

View File

@ -1,18 +1,67 @@
// Link MODULES
.widget-archive {
// layout-content 下的樣式
.widget-title {
@extend .unity-title;
}
&.widget1 {
.widget-archive-item-group {
margin-bottom: 0;
}
@charset "utf-8";
//
// Widget
// -------------------------------------------------
// Widget
// ## gerenral styles
.w-archive {
.w-archive__widget-title {
font-family: $main-font;
font-size: $w-widget-title-font-size;
color: $theme-gray;
margin: 0.5rem 0;
}
}
// Widget 1
.archive-widget-1 {
.w-archive__list.level-1 {
padding: 0.5rem;
}
.w-archive__item.level-1 {
list-style-position: inside;
margin-bottom: 0.8rem;
}
.w-archive__item-heading {
display: inline-block;
font-size: $w-item-heading-font-size;
font-family: $main-font;
color: $theme-gray;
margin: 0;
padding: 0 0 0.25rem 0;
}
.w-archive__list.level-2 {
margin: 0;
padding: 0;
}
.w-archive__item.level-2 {
border-bottom: 1px dashed $w-border-color;
padding: 0 0 0.5rem 0.4rem;
}
.w-archive__link {
font-size: $w-title-font-size-small;
}
}
// Link INDEX
.index-archive {
.status-top {
background-color: $theme-blue;
font-size: 0.75rem;
}
.status-hot {
font-size: 0.75rem;
background-color: $theme-red;
}
.panel {
margin-bottom: 10px;
}
.index-title {
@extend .unity-title;
}
@ -25,4 +74,60 @@
}
}
}
}
}
// ****************** Index ******************
// Archive index 1
.i-archive {
font-family: $main-font;
.i-archive__list {
list-style: none;
margin: 0;
padding: 0;
}
.i-archive__category-title {
padding-bottom: 5px;
border-bottom: 1px dashed lighten($gray, 65%);
}
.i-archive__category-item {
font-size: 13px;
font-size: 0.8125rem;
}
.i-archive__category-item {
display: inline-block;
}
.i-archive__file-list {
display: inline-block;
margin-bottom: 0.8em;
}
.i-archive__item-wrap {
display: list-item;
list-style-type: disc;
margin-left: 1.5em;
}
.i-archive__file-wrap {
display: inline-block;
margin-right: 0.5em;
}
.i-archive__file-name {
font-size: 12px;
font-size: 0.75rem;
}
.status-top {
font-size: 0.75rem;
background-color: $theme-blue;
}
.status-hot {
font-size: 0.75rem;
background-color: $theme-red;
}
}

View File

@ -5,7 +5,7 @@
@import "base/mixins";
@import "base/variables";
@import "base/unity";
@import "base/tab";
@import "base/orbitbar-override";
// Layout
@import "layout/header";
@ -13,7 +13,7 @@
@import "layout/content";
@import "layout/footer";
// Modules
// // Modules
@import "modules/menu";
@import "modules/ad_banner";
@import "modules/announcement";
@ -28,7 +28,11 @@
@import "widget/breadcrumb";
@import "widget/sitemenu";
html {
font-size: 100%;
}
body {
font-family: 'Droid Sans';
margin-top: 40px;
font-size: inherit;
}

View File

@ -1,21 +1,81 @@
.widget-sitemenu {
.widget-title {
@extend .unity-title;
}
&.widget1 {
ul {
margin-left: 1em;
a {
display: block;
padding: 5px 8px;
border-bottom: 1px dotted $theme-gray-light;
&:hover {
text-decoration: none;
}
}
&.sitemenu-menu-level-0 {
margin-left: 0em;
}
.submenu-wrap {
padding: 20px 1em;
}
.submenu__title {
display: none;
}
.submenu__list {
@include clearfix;
list-style: none;
padding: 0;
margin: 0;
}
.submenu__item.level-1 {
position: relative;
float: left;
margin-right: 1%;
margin-bottom: 12px;
}
.submenu__link.level-1 {
float: left;
padding-bottom: 8px;
font-size: 13px;
font-size: 0.8125rem;
background: #0062a7;
color: #fff;
padding: 8px 0.8em;
border-radius: 0.2em;
&:hover {
background: #0f7fcc;
}
}
.submenu__item:hover .dropdown {
display: block;
}
// Submenu dropdown
.submenu__list.dropdown {
display: none;
padding: 20px 0 0 0;
position: absolute;
left: 0;
top: 80%;
border-radius: 2px;
z-index: 200;
}
.submenu__list .dropdown:before {
content: "";
border-style: solid;
border-width: 0px 7px 7px 7px;
border-color: transparent transparent #83cccb transparent;
position: absolute;
top: 15px;
left: 15px;
}
.submenu__item.level-2 {
display: block;
padding: 4px 8px;
background: #83cccb;
font-size: 0.8125rem;
}
.submenu__link.level-2 {
color: #fff;
white-space: nowrap;
}
.submenu__list.hidden--item {
display: none;
&:before {
display: none;
}
}
}

View File

@ -2,8 +2,8 @@
<div class="container layout-footer-inner">
<div class="row">
<div class="layout-footer-content col-sm-4">{{footer-data}}</div>
<div class="layout-footer-content col-sm-4" data-pp="5"></div>
<div class="layout-footer-content col-sm-4" data-pp="6"></div>
<div class="layout-footer-content col-sm-4" data-pp="25"></div>
<div class="layout-footer-content col-sm-4" data-pp="26"></div>
</div>
</div>
</footer>

View File

@ -1,13 +1,12 @@
<!doctype html>
<html lang="en">
<html lang="<%= I18n.locale.to_s %>" class="orbit">
<head>
<%= render_partial("head") %>
</head>
<body>
<body class="page-main">
<%= render_orbit_bar %>
<%= render_header %>
<section class="layout-slide" data-pp="4"></section>
<div class="layout-content">
<div class="layout-content-inner container">
<section class="layout-content-box" data-pp="1"></section>
@ -17,7 +16,6 @@
</div>
</div>
</div>
<%= image_tag("http://placehold.it/350x150") %>
<%= render_footer %>
</body>
</html>

View File

@ -1,24 +1,22 @@
<!doctype html>
<html lang="en">
<html lang="<%= I18n.locale.to_s %>" class="orbit">
<head>
<%= render_partial("head") %>
</head>
<body>
<body class="internal-page">
<%= render_orbit_bar %>
<%= render_header %>
<section class="layout-slide" data-pp="1"></section>
<section class="layout-slide" data-pp="11"></section>
<div class="layout-content">
<div class="layout-content-inner container">
<div class="row">
<section class="layout-content-box col-sm-9">
<div data-pp="2"></div>
<div class="site-menu" data-pp="12"></div>
<div class="row">
<section class="layout-content-box col-sm-9">
<main id="main-content" data-content="true">
<%= yield %>
</main>
<div data-pp="3"></div>
</section>
<aside class="layout-content-box aside col-sm-3" data-pp="4"></aside>
<aside class="layout-content-box aside col-sm-3" data-pp="13"></aside>
</div>
</div>
</div>

View File

@ -1,8 +0,0 @@
<ul>
<li>
<a href="">Sitemap</a>
</li>
<li>
<a href="">Contact</a>
</li>
</ul>

View File

@ -0,0 +1,27 @@
<!--
AD banner widget-1
Fields: image, caption, navigation
-->
<div class="w-ad-banner ad-banner-widget-1" >
<div class="w-ad-banner__wrap cycle-slideshow"
data-list="images"
data-level="0"
data-cycle-slides=".w-ad-banner__slide"
data-cycle-log="false"
data-overlay=".w-ad-banner__caption"
data-pager=".w-ad-banner__pager"
data-pager-template="<li><a href='#'></a></li>"
data-pager-active-class="active-slide"
>
<div class="w-ad-banner__slide {{class}}"
data-link="{{link}}"
data-cycle-title="{{title}}"
data-cycle-desc="{{context}}"
data-overlay-template="<h2>{{title}}</h2>{{desc}}"
>
<img class="w-ad-banner__image" src="{{image_link}}">
</div>
</div>
<div class="w-ad-banner__caption"></div>
<ul class="w-ad-banner__pager"></ul>
</div>

View File

@ -0,0 +1,26 @@
<!--
Ad banner widget-2
Fields: image, navigation
-->
<div class="w-ad-banner ad-banner-widget-2" >
<div class="w-ad-banner__wrap cycle-slideshow"
data-list="images"
data-level="0"
data-cycle-slides=".w-ad-banner__slide"
data-cycle-log="false"
data-overlay=".w-ad-banner__caption"
data-pager=".w-ad-banner__pager"
data-pager-template="<li><a href='#'></a></li>"
data-pager-active-class="active-slide"
>
<div class="w-ad-banner__slide {{class}}"
data-link="{{link}}"
data-cycle-title="{{title}}"
data-cycle-desc="{{context}}"
data-overlay-template="<h2>{{title}}</h2>{{desc}}"
>
<img class="w-ad-banner__image" src="{{image_link}}">
</div>
</div>
<ul class="w-ad-banner__pager"></ul>
</div>

View File

@ -0,0 +1,16 @@
<!--
Ad banner widget-3
Fields: image
-->
<div class="w-ad-banner ad-banner-widget-2" >
<div class="w-ad-banner__wrap cycle-slideshow"
data-list="images"
data-level="0"
data-cycle-slides=".w-ad-banner__slide"
data-cycle-log="false"
>
<div class="w-ad-banner__slide {{class}}">
<img class="w-ad-banner__image" src="{{image_link}}">
</div>
</div>
</div>

View File

@ -1,24 +0,0 @@
<div class="widget-adBanner widget1" >
<div class="cycle-slideshow widget-adBanner-content"
data-list="images"
data-level="0"
data-cycle-slides=".slide-img"
data-overlay=".widget-adBanner-overlay .caption"
data-pager=".widget-adBanner-overlay .home"
data-pager-template="<li><i class='fa fa-circle-o'></i></li>"
data-pager-active-class="active"
>
<div class="{{class}} slide-img"
data-link="{{link}}"
data-cycle-title="{{title}}"
data-cycle-desc="{{context}}"
data-overlay-template="<h2>{{title}}</h2>{{desc}}"
>
<img src="{{image_link}}">
</div>
</div>
<div class="widget-adBanner-overlay">
<div class="caption"></div>
<ul class="navigation home"></ul>
</div>
</div>

View File

@ -1,22 +0,0 @@
<div class="widget-adBanner widget2" >
<div class="cycle-slideshow widget-adBanner-content"
data-list="images"
data-level="0"
data-cycle-slides=".slide-img"
data-pager=".widget-adBanner-overlay .page"
data-pager-template="<li><i class='fa fa-circle-o'></i></li>"
data-pager-active-class="active"
>
<div class="{{class}} slide-img"
data-link="{{link}}"
data-cycle-title="{{title}}"
data-cycle-desc="{{context}}"
data-overlay-template="<h2>{{title}}</h2>{{desc}}"
>
<img src="{{image_link}}">
</div>
</div>
<div class="widget-adBanner-overlay">
<ul class="navigation page"></ul>
</div>
</div>

View File

@ -1,22 +0,0 @@
<div class="widget-adBanner widget3">
<div class="cycle-slideshow widget-adBanner-content"
data-list="images"
data-level="0"
data-cycle-slides=".slide-img"
data-pager=".widget-adBanner-overlay .box"
data-pager-template="<li><i class='fa fa-circle-o'></i></li>"
data-pager-active-class="active"
>
<div class="slide-img"
data-link="{{link}}"
data-cycle-title="{{title}}"
data-cycle-desc="{{context}}"
data-overlay-template="<h2>{{title}}</h2>{{desc}}"
>
<img src="{{image_link}}">
</div>
</div>
<div class="widget-adBanner-overlay">
<ul class="navigation box"></ul>
</div>
</div>

View File

@ -0,0 +1,28 @@
{
"widgets" : [
{
"filename" : "ad_banner_widget1",
"name" : {
"zh_tw" : "1. 橫幅輪播 ( 圖片, 圖片說明文字, 導航圖示 )",
"en" : "1. Carousel ( image, description, navigation )"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "ad_banner_widget2",
"name" : {
"zh_tw" : "2. 橫幅輪播 ( 圖片, 導航圖示 )",
"en" : "2. Carousel ( image, navigation )"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "ad_banner_widget3",
"name" : {
"zh_tw" : "3. 廣告輪播 ( 圖片 )",
"en" : "2. AD banner ( image )"
},
"thumbnail" : "thumbnail-block.png"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -1,14 +1,12 @@
<!--
Announcement widget-1
Fields: widget-title, img, status, postdate, title, subtitle, readmore
Fields: widget-title, image, status, postdate, title, subtitle, readmore
-->
<div class="w-announcement annc-widget-1">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<ul class="w-announcement__list" data-level="0" data-list="announcements">
<li class="w-announcement__item">
<div class="w-announcement__pic-wrap resizeimg">
<div class="w-announcement__pic-wrap bullseye">
<a class="w-announcement__link" href="{{link_to_show}}">
<img class="w-announcement__pic" src="{{img_src}}" alt="Announcement image">
</a>
@ -17,14 +15,14 @@
<div class="w-announcement__status-wrap" data-list="statuses" data-level="1">
<span class="w-announcement__status label status {{status-class}}">{{status}}</span>
</div>
<span class="w-announcement__postdate">
<span class="w-announcement__postdate" date-format="%Y-%m-%d">
<i class="fa fa-calendar"></i>
{{date}}
{{postdate}}
</span>
<h4 class="w-announcement__title">
<a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a>
</h4>
<p class="w-announcement__subtitle">{{subtitle}} </p>
<p class="w-announcement__subtitle">{{subtitle}}</p>
<a class="w-announcement__more" href="{{link_to_show}}">Read More »</a>
</div>
</li>

View File

@ -3,9 +3,7 @@
Fields: widget-title, title, postdate
-->
<div class="w-announcement annc-widget-10 w-announcement--table">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<table class="w-announcement__table">
<thead>
<th class="w-announcement__th">{{title-head}}</th>
@ -14,7 +12,7 @@
<tbody class="w-announcement__list" data-level="0" data-list="announcements">
<tr>
<td><a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a></td>
<td>{{date}}</td>
<td date-format="%Y-%m-%d">{{postdate}}</td>
</tr>
</tbody>
</table>

View File

@ -3,9 +3,7 @@
Fields: widget-title, category, title, postdate
-->
<div class="w-announcement annc-widget-11 w-announcement--table">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<table class="w-announcement__table">
<thead>
<tr>
@ -18,7 +16,7 @@
<tr>
<td>{{category}}</td>
<td><a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a></td>
<td>{{date}}</td>
<td date-format="%Y-%m-%d">{{postdate}}</td>
</td>
</tr>
</tbody>

View File

@ -3,9 +3,7 @@
Fields: widget-title, category, postdate, title
-->
<div class="w-announcement annc-widget-12 w-announcement--table">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<table class="w-announcement__table">
<thead>
<tr>
@ -17,7 +15,7 @@
<tbody class="w-announcement__list" data-level="0" data-list="announcements">
<tr>
<td>{{category}}</td>
<td>{{date}}</td>
<td date-format="%Y-%m-%d">{{postdate}}</td>
<td><a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a></td>
</td>
</tr>

View File

@ -0,0 +1,19 @@
<!--
Announcement widget-13
Fields: widget-title, title
-->
<div class="w-announcement annc-widget-13">
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<ul class="w-announcement__list" data-level="0" data-list="announcements">
<li class="w-announcement__item">
<div class="w-announcement__content-wrap">
<div class="w-announcement__status-wrap" data-list="statuses" data-level="1">
<span class="w-announcement__status label status {{status-class}}">{{status}}</span>
</div>
<h4 class="w-announcement__title">
<a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a>
</h4>
</div>
</li>
</ul>
</div>

View File

@ -3,18 +3,16 @@
Fields: widget-title, status, postdate, title, subtitle, readmore
-->
<div class="w-announcement annc-widget-2">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<ul class="w-announcement__list" data-level="0" data-list="announcements">
<li class="w-announcement__item">
<div class="w-announcement__content-wrap">
<div class="w-announcement__status-wrap" data-list="statuses" data-level="1">
<span class="w-announcement__status label status {{status-class}}">{{status}}</span>
</div>
<span class="w-announcement__postdate">
<span class="w-announcement__postdate" date-format="%Y-%m-%d">
<i class="fa fa-calendar"></i>
{{date}}
{{postdate}}
</span>
<h4 class="w-announcement__title">
<a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a>

View File

@ -3,15 +3,13 @@
Fields: widget-title, postdate, title, subtitle, readmore
-->
<div class="w-announcement annc-widget-3">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<ul class="w-announcement__list" data-level="0" data-list="announcements">
<li class="w-announcement__item">
<div class="w-announcement__content-wrap">
<span class="w-announcement__postdate">
<span class="w-announcement__postdate" date-format="%Y-%m-%d">
<i class="fa fa-calendar"></i>
{{date}}
{{postdate}}
</span>
<h4 class="w-announcement__title">
<a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a>

View File

@ -3,14 +3,12 @@
Fields: widget-title, postdate, title
-->
<div class="w-announcement annc-widget-4">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<ul class="w-announcement__list" data-level="0" data-list="announcements">
<li class="w-announcement__item">
<div class="w-announcement__content-wrap">
<span class="w-announcement__postdate">
{{date}}
<span class="w-announcement__postdate" date-format="%Y-%m-%d">
{{postdate}}
</span>
<h4 class="w-announcement__title">
<a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a>

View File

@ -3,9 +3,7 @@
Fields: widget-title, img, status, postdate, title, subtitle, readmore
-->
<div class="w-announcement annc-widget-5">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<ul class="w-announcement__list" data-level="0" data-list="announcements">
<li class="w-announcement__item">
<div class="w-announcement__pic-wrap resizeimg">
@ -17,9 +15,9 @@
<div class="w-announcement__status-wrap" data-list="statuses" data-level="1">
<span class="w-announcement__status label status {{status-class}}">{{status}}</span>
</div>
<span class="w-announcement__postdate">
<span class="w-announcement__postdate" date-format="%Y-%m-%d">
<i class="fa fa-calendar"></i>
{{date}}
{{postdate}}
</span>
<h4 class="w-announcement__title">
<a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a>

View File

@ -3,17 +3,15 @@
Fields: widget-title, title, postdate
-->
<div class="w-announcement annc-widget-6">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<ul class="w-announcement__list" data-level="0" data-list="announcements">
<li class="w-announcement__item">
<div class="w-announcement__content-wrap">
<h4 class="w-announcement__title">
<a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a>
</h4>
<span class="w-announcement__postdate">
{{date}}
<span class="w-announcement__postdate" date-format="%Y-%m-%d">
{{postdate}}
</span>
</div>

View File

@ -3,14 +3,12 @@
Fields: widget-title, postdate, title
-->
<div class="w-announcement annc-widget-7">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<ul class="w-announcement__list" data-level="0" data-list="announcements">
<li class="w-announcement__item">
<div class="w-announcement__content-wrap">
<span class="w-announcement__postdate">
{{date}}
<span class="w-announcement__postdate" date-format="%Y-%m-%d">
{{postdate}}
</span>
<h4 class="w-announcement__title">
<a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a>

View File

@ -3,9 +3,7 @@
Fields: widget-title, postdate, title, status, category
-->
<div class="w-announcement annc-widget-8 w-announcement--table">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<table class="w-announcement__table">
<thead>
<tr>
@ -17,7 +15,7 @@
</thead>
<tbody class="w-announcement__list" data-level="0" data-list="announcements">
<tr>
<td>{{date}}</td>
<td date-format="%Y-%m-%d">{{postdate}}</td>
<td><a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a></td>
<td>
<div class="w-announcement__status-wrap" data-list="statuses" data-level="1">

View File

@ -3,18 +3,16 @@
Fields: widget-title, status, postdate, title, category
-->
<div class="w-announcement annc-widget-9 w-announcement--table">
<h3 class="w-announcement__widget-title">
{{widget-title}}
</h3>
<h3 class="w-announcement__widget-title">{{widget-title}}</h3>
<table class="w-announcement__table">
<thead>
<tr>
<th class="w-announcement__th">{{status-head}}</th>
<th class="w-announcement__th">{{date-head}}</th>
<th class="w-announcement__th">{{title-head}}</th>
<th class="w-announcement__th">{{category-head}}</th>
</tr>
</thead>
<thead>
<tr>
<th class="w-announcement__th">{{status-head}}</th>
<th class="w-announcement__th">{{date-head}}</th>
<th class="w-announcement__th">{{title-head}}</th>
<th class="w-announcement__th">{{category-head}}</th>
</tr>
</thead>
<tbody class="w-announcement__list" data-level="0" data-list="announcements">
<tr>
<td>
@ -22,7 +20,7 @@
<span class="w-announcement__status label status {{status-class}}">{{status}}</span>
</div>
</td>
<td>{{date}}</td>
<td date-format="%Y-%m-%d">{{postdate}}</td>
<td><a class="w-announcement__link" href="{{link_to_show}}">{{title}}</a></td>
<td>{{category}}</td>
</tr>

View File

@ -1,24 +0,0 @@
<div class="widget-announcement wudget1">
<h3 class="widget-title">
<span>{{widget-title}}</span>
</h3>
<div data-level="0" data-list="announcements">
<div class="widget-content">
<div class="widget-content-inner row">
<div class="widget-pic resizeimg col-sm-4">
<img src="{{img_src}}" alt="">
</div>
<section class="widget-part col-sm-8">
<span class="pull-right" data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="date"><i class="fa fa-calendar"></i> {{postdate}}</span>
<h4 class="widget-content-title">
<a href="{{link_to_show}}">{{title}}</a>
</h4>
<p class="widget-subtitle">{{subtitle}} <a class="more" href="{{link_to_show}}">Read More »</a></p>
</section>
</div>
</div>
</div>
</div>

View File

@ -1,24 +0,0 @@
<div class="widget-announcement wudget1">
<h3 class="widget-title">
<span>{{widget-title}}</span>
</h3>
<div data-level="0" data-list="announcements">
<div class="widget-content">
<div class="widget-content-inner row">
<div class="widget-pic resizeimg col-sm-4">
<img src="{{img_src}}" alt="">
</div>
<section class="widget-part col-sm-8">
<span class="pull-right" data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="date"><i class="fa fa-calendar"></i> {{postdate}}</span>
<h4 class="widget-content-title">
<a href="{{link_to_show}}">{{title}}</a>
</h4>
<p class="widget-subtitle">{{subtitle}} <a class="more" href="{{link_to_show}}">Read More »</a></p>
</section>
</div>
</div>
</div>
</div>

View File

@ -1,21 +0,0 @@
<div class="widget-announcement wudget2">
<h3 class="widget-title">
<span>{{widget-title}}</span>
</h3>
<div class="row" data-level="0" data-list="announcements">
<div class="widget-content col-sm-4">
<div class="widget-content-inner">
<div class="widget-pic resizeimg">
<img src="{{img_src}}" alt="">
<span class="date">{{postdate}}</span>
</div>
<section class="widget-part">
<h4 class="widget-content-title">
<a href="{{link_to_show}}">{{title}}</a>
</h4>
<p class="widget-subtitle">{{subtitle}} <a class="more" href="{{link_to_show}}">Read More »</a></p>
</section>
</div>
</div>
</div>
</div>

View File

@ -1,28 +0,0 @@
<div class="widget-announcement wudget1">
<h3 class="widget-title">
<span>{{widget-title}}</span>
</h3>
<div data-level="0" data-list="announcements">
<div class="widget-content">
<div class="widget-content-inner row">
<div class="widget-pic resizeimg col-sm-4">
<img src="{{img_src}}" alt="">
</div>
<section class="widget-part col-sm-8">
<span class="pull-right" data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<div class="date">
<div>{{week}}</div>
<div>{{day}}</div>
<div>{{month}} {{year}}</div>
</div>
<h4 class="widget-content-title">
<a href="{{link_to_show}}">{{title}}</a>
</h4>
<p class="widget-subtitle">{{subtitle}} <a class="more" href="{{link_to_show}}">Read More »</a></p>
</section>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,22 @@
<!--
Announcement index-1
Fields: widget-title, date-head, title-head, postdate, title, pagination
-->
<div class="i-announcement annc-index-1 i-announcement--table">
<h3 class="i-announcement__widget-title">{{widget-title}}</h3>
<table class="i-announcement__table">
<thead>
<tr>
<th class="i-announcement__th i-announcement__th--date">{{date-head}}</th>
<th class="i-announcement__th i-announcement__th--title">{{title-head}}</th>
</tr>
</thead>
<tbody class="i-announcement__tbody" data-level="0" data-list="announcements">
<tr>
<td><span class="i-announcement__date i-announcement__td--postdate" date-format="%Y-%m-%d">{{postdate}}</span></td>
<td><a class="i-announcement__link i-announcement__td--link" href="{{link_to_show}}">{{title}}</a></td>
</tr>
</tbody>
</table>
</div>
{{pagination_goes_here}}

View File

@ -0,0 +1,26 @@
<!--
Announcement index-2
Fields: widget-title, date-head, title-head, postdate, title, pagination
-->
<div class="i-announcement annc-index-2">
<h3 class="i-announcement__title">{{page-title}}</h3>
<ul class="i-announcement__list" data-level="0" data-list="announcements">
<li class="i-announcement__item">
<div class="i-announcement__pic-wrap bullseye">
<img class="i-announcement__pic" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="i-announcement__content-wrap">
<h4 class="i-announcement__title">
<a class="i-announcement__link" href="{{link_to_show}}">{{title}}</a>
</h4>
<span class="i-announcement__status-wrap" data-list="statuses" data-level="1">
<span class="i-announcement__status label status {{status-class}}">{{status}}</span>
</span>
<span class="i-announcement__date" date-format="%Y-%m-%d"><i class="fa fa-calendar"></i>{{postdate}}</span>
<p class="i-announcement__subtitle">{{subtitle}}</p>
<a class="i-announcement__more" href="{{link_to_show}}">Read More »</a>
</div>
</li>
</ul>
</div>
{{pagination_goes_here}}

View File

@ -1,26 +0,0 @@
<div class="index-announcement index1">
<h3 class="index-title">
<span>{{page-title}}</span>
</h3>
<div class="row" data-level="0" data-list="announcements">
<div class="index-content col-sm-6">
<div class="index-content-inner">
<div class="index-pic resizeimg">
<img src="{{img_src}}" alt="">
</div>
<section class="index-part">
<h4 class="index-content-title">
<a href="{{link_to_show}}">{{title}}</a>
</h4>
<span class="pull-right" data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="date"><i class="fa fa-calendar"></i> {{postdate}}</span>
<p class="index-subtitle">{{subtitle}}</p>
<a class="more" href="{{link_to_show}}">Read More »</a>
</section>
</div>
</div>
</div>
</div>
{{pagination_goes_here}}

View File

@ -1,26 +0,0 @@
<div class="index-announcement index1">
<h3 class="index-title">
<span>{{page-title}}</span>
</h3>
<div class="row" data-level="0" data-list="announcements">
<div class="index-content col-sm-6">
<div class="index-content-inner">
<div class="index-pic resizeimg">
<img src="{{img_src}}" alt="">
</div>
<section class="index-part">
<h4 class="index-content-title">
<a href="{{link_to_show}}">{{title}}</a>
</h4>
<span class="pull-right" data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="date"><i class="fa fa-calendar"></i> {{postdate}}</span>
<p class="index-subtitle">{{subtitle}}</p>
<a class="more" href="{{link_to_show}}">Read More »</a>
</section>
</div>
</div>
</div>
</div>
{{pagination_goes_here}}

View File

@ -1,18 +1,18 @@
{
"frontend": [
{
"filename" : "annc_index",
"filename" : "annc_index1",
"name" : {
"zh_tw" : "1.純文字無圖片 ( 模組標題, 日期, 標題 )",
"en" : "1.Text without image (widget-title, postdate, title)"
"zh_tw" : "1. 純文字無圖片 ( 模組標題, 日期, 標題 )",
"en" : "1. Text without image (widget-title, postdate, title)"
},
"thumbnail" : "thumbnail-block-list.png"
},
{
"filename" : "annc_index1",
"filename" : "annc_index2",
"name" : {
"zh_tw" : "2.完整圖文 ( 模組標題, 日期, 標題, 圖片, 閱讀更多, 標籤 )",
"en" : "2.Text with image (widget-title, postdate, title, image)"
"zh_tw" : "2. 完整圖文 ( 模組標題, 日期, 標題, 圖片, 閱讀更多, 標籤 )",
"en" : "2. Text with image (widget-title, postdate, title, image)"
},
"thumbnail" : "thumbnail-block.png"
}
@ -21,104 +21,104 @@
{
"filename" : "annc_widget1",
"name" : {
"zh_tw" : "1.圖文 ( 模組標題, 圖片, 狀態, 日期, 標題, 副標題, 閱讀更多 )",
"en" : "1.Text with image (widget-title, image, status, postdate, title, subtitle, readmore)"
"zh_tw" : "1. 圖文 ( 模組標題, 圖片, 狀態, 日期, 標題, 副標題, 閱讀更多 )",
"en" : "1. Text with image (widget-title, image, status, postdate, title, subtitle, readmore)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget2",
"name" : {
"zh_tw" : "2.圖文 ( 模組標題, 狀態, 日期, 標題, 副標題, 閱讀更多 )",
"en" : "2.Text with image (widget-title, status, postdate, title, subtitle, readmore)"
"zh_tw" : "2. 圖文 ( 模組標題, 狀態, 日期, 標題, 副標題, 閱讀更多 )",
"en" : "2. Text with image (widget-title, status, postdate, title, subtitle, readmore)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget3",
"name" : {
"zh_tw" : "3.圖文 ( 模組標題, 日期, 標題, 副標題, 閱讀更多 )",
"en" : "3.Text with image (widget-title, postdate, title, subtitle, readmore)"
"zh_tw" : "3. 圖文 ( 模組標題, 日期, 標題, 副標題, 閱讀更多 )",
"en" : "3. Text with image (widget-title, postdate, title, subtitle, readmore)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget4",
"name" : {
"zh_tw" : "4.列表 ( 模組標題, 日期, 標題 )",
"en" : "4.List (widget-title, postdate, title)"
"zh_tw" : "4. 列表 ( 模組標題, 日期, 標題 )",
"en" : "4. List (widget-title, postdate, title)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget5",
"name" : {
"zh_tw" : "5.圖文 ( 模組標題, 圖片, 狀態, 日期, 標題, 副標題, 閱讀更多 )",
"en" : "5.List (widget-title, image, status, postdate, title, subtitle, readmore)"
"zh_tw" : "5. 圖文 ( 模組標題, 圖片, 狀態, 日期, 標題, 副標題, 閱讀更多 )",
"en" : "5. List (widget-title, image, status, postdate, title, subtitle, readmore)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget6",
"name" : {
"zh_tw" : "6.列表 ( 模組標題, 日期, 標題 )",
"en" : "6.List (widget-title, postdate, title)"
"zh_tw" : "6. 列表 ( 模組標題, 日期, 標題 )",
"en" : "6. List (widget-title, postdate, title)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget7",
"name" : {
"zh_tw" : "7.列表 ( 模組標題, 日期, 標題 )",
"en" : "7.List (widget-title, postdate, title)"
"zh_tw" : "7. 列表 ( 模組標題, 日期, 標題 )",
"en" : "7. List (widget-title, postdate, title)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget8",
"name" : {
"zh_tw" : "8.表格列表 ( 模組標題, 日期, 標題, 狀態, 類別 )",
"en" : "8.Table (widget-title, postdate, title, status, category)"
"zh_tw" : "8. 表格列表 ( 模組標題, 日期, 標題, 狀態, 類別 )",
"en" : "8. Table (widget-title, postdate, title, status, category)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget9",
"name" : {
"zh_tw" : "9.表格列表 ( 模組標題, 狀態, 日期, 標題, 類別 )",
"en" : "9.Table (widget-title, status, postdate, title, category)"
"zh_tw" : "9. 表格列表 ( 模組標題, 狀態, 日期, 標題, 類別 )",
"en" : "9. Table (widget-title, status, postdate, title, category)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget10",
"name" : {
"zh_tw" : "10.表格列表 ( 模組標題, 標題, 日期 )",
"en" : "10.Table (widget-title, title, postdate)"
"zh_tw" : "10. 表格列表 ( 模組標題, 標題, 日期 )",
"en" : "10. Table (widget-title, title, postdate)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget11",
"name" : {
"zh_tw" : "11.表格列表 ( 模組標題, 標題, 日期 )",
"en" : "11.Table (widget-title, title, postdate)"
"zh_tw" : "11. 表格列表 ( 模組標題, 標題, 日期 )",
"en" : "11. Table (widget-title, title, postdate)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget12",
"name" : {
"zh_tw" : "12.表格列表 ( 模組標題, 日期, 標題 )",
"en" : "12.Table (widget-title, postdate, title)"
"zh_tw" : "12. 表格列表 ( 模組標題, 日期, 標題 )",
"en" : "12. Table (widget-title, postdate, title)"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "annc_widget13",
"name" : {
"zh_tw" : "13.列表( 模組標題, 標題 )",
"en" : "13.List (widget-title, title)"
"zh_tw" : "13. 列表( 模組標題, 標題 )",
"en" : "13. List (widget-title, title)"
},
"thumbnail" : "thumbnail-block.png"
}

View File

@ -19,7 +19,6 @@
</li>
</ul>
<section class="post-section">
<p class="post-pic"><img src="{{image}}" alt=""></p>
<p class="post-content">{{body}}</p>
</section>
<ul class="post-related list-unstyled">

View File

@ -0,0 +1,19 @@
<!--
Archive widget-1
-->
<div class="w-archive archive-widget-1" module="archive" data-ps="">
<h3 class="w-archive__widget-title">{{widget-title}}</h3>
<ul class="w-archive__list level-1" data-list="categories" data-level="0">
<li class="w-archive__item level-1">
<h4 class="w-archive__item-heading">{{category-title}}</h4>
<ul class="w-archive__list level-2" data-list="archives" data-level="1">
<li class="w-archive__item level-2">
<a class="w-archive__link" href="{{archive_url}}">{{archive-title}}</a>
</li>
</ul>
</li>
</ul>
<p class="more">
<a class="btn btn-sm btn-info" href="{{more_url}}">More</a>
</p>
</div>

View File

@ -1,15 +0,0 @@
<div class="widget" module="archive" data-ps="">
<h2 class="widget-title">{{widget-title}}</h2>
<div class="list-group">
<div class="list-group-item" data-list="categories" data-level="0">
<h4 class="list-group-item-heading">{{category-title}}</h4>
<ul class="list-group-item-text" data-list="archives" data-level="1">
<li><a href="{{archive_url}}">{{archive-title}}</a></li>
</ul>
</div>
</div>
<p class="more">
<a class="btn btn-sm btn-info" href="{{more_url}}">More</a>
</p>
</div>
<hr class="dotted">

View File

@ -0,0 +1,25 @@
<div class="i-archive archive-index-1">
<h3 class="i-archive__page-title">{{page-title}}</h3>
<ul class="i-archive__list" data-list="categories" data-level="0">
<li class="i-archive__item">
<h4 class="i-archive__category-title">{{category-title}}</h4>
<dl class="i-archive__category-list" data-list="archives" data-level="1">
<div class="i-archive__item-wrap">
<dt class="i-archive__category-item">
<sapn class="i-archive__archive-title">{{archive-title}}</span>
<span class="i-archive__status-wrap" data-list="statuses" data-level="2">
<span class="i-archive__status label status {{status-class}}">{{status}}</span>
</span>
</dt>
<dl class="i-archive__file-list" data-list="files" data-level="2">
<dd class="i-archive__file-wrap">
<a class="i-archive__file-name" href="{{file-url}}" target="_blank">{{file-name}}</a>
<span class="i-archive__file-type label label-primary">{{file-type}}</span>
</dd>
</dl>
</div>
</dl>
</li>
</ul>
</div>
<script>

View File

@ -28,9 +28,9 @@
</dl>
</dl>
</div>
{{link_to_edit}}
</div>
</div>
{{link_to_edit}}
</div>
</div>
<script>

View File

@ -1,81 +0,0 @@
<!-- <div class="index" module="archive">
<h2 class="widget-title">{{widget-title}}</h2>
<div class="list-group">
<div class="list-group-item" data-list="categories" data-level="0">
<h4 class="list-group-item-heading">{{category-title}}</h4>
<ul class="list-group-item-text">
<li data-list="archives" data-level="1">
<h5 class="archives-title">
{{archive-title}}
<span data-list="statuses" data-level="2">
<span class="label status {{status-class}}">{{status}}</span>
</span>
</h5>
<ol class="archives-item" data-list="files" data-level="2">
<li>
<a href="{{file-url}}" class="archives-file" target="_blank" title="Evaluation Rules">{{file-name}}</a>
<span class="label label-primary">{{file-type}}</span>
</li>
</ol>
</li>
<li data-list="cool" data-level="1">
<span>This is for test</span>
</li>
</ul>
</div>
</div>
</div> -->
<div class="index-archive index1">
<h3 class="index-title">
<span>{{page-title}}</span>
</h3>
<div class="panel-group" id="index-archive-group" data-list="categories" data-level="0">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#index-archive-group" href="#collapse" class="collapsed">
{{category-title}}
</a>
</h4>
</div>
<div id="collapse" class="panel-collapse collapse">
<div class="panel-body">
<dl class="dl-horizontal index-archive-item-group" data-list="archives" data-level="1">
<dt class="index-archive-item-list">
<sapn class="index-archive-item-title">{{archive-title}}</span>
<span data-list="statuses" data-level="2">
<span class="label status {{status-class}}">{{status}}</span>
</span>
</dt>
<dl class="index-archives-files-list" data-list="files" data-level="2">
<dd>
<a href="{{file-url}}" class="index-archives-files-item" target="_blank">{{file-name}}</a>
<span class="label label-primary">{{file-type}}</span>
</dd>
</dl>
</dl>
<!-- <ul class="index-archive-item-group" data-list="archives" data-level="1">
<li class="index-archive-item-list">
<sapn class="index-archive-item-title">{{archive-title}}</span>
<span data-list="statuses" data-level="2">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<ol class="index-archives-files-list" data-list="files" data-level="2">
<li>
<a href="{{file-url}}" class="index-archives-files-item" target="_blank">{{file-name}}</a>
<span class="label label-primary">{{file-type}}</span>
</li>
</ol>
</li>
</ul> -->
</div>
</div>
</div>
</div>
</div>
<script>
for (var i = 0; i < $('.index-archive.index1 .panel-title').length; i++) {
$('.index-archive.index1 .panel-title:eq(' + i + ') .collapsed').attr('href', '#collapse' + i);
$('.index-archive.index1 .panel-collapse:eq(' + i + ')').attr('id', 'collapse' + i);
};
</script>

View File

@ -0,0 +1,38 @@
{
"frontend": [
{
"filename" : "archive_index1",
"name" : {
"zh_tw" : "1. 列表",
"en" : "1. List"
},
"thumbnail" : "thumbnail-block-list.png"
},
{
"filename" : "archive_index2",
"name" : {
"zh_tw" : "2. 互動式列表",
"en" : "2. Accordion list"
},
"thumbnail" : "thumbnail-block.png"
}
],
"widgets" : [
{
"filename" : "archive_widget1",
"name" : {
"zh_tw" : "1. 列表",
"en" : "1. List"
},
"thumbnail" : "thumbnail-block.png"
},
{
"filename" : "archive_widget2",
"name" : {
"zh_tw" : "2. 互動式列表",
"en" : "2. Accordion list"
},
"thumbnail" : "thumbnail-block.png"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -9,6 +9,7 @@
data-cycle-fx="carousel"
data-cycle-timeout="3000"
data-cycle-carousel-visible="3"
data-cycle-pause-on-hover="true"
data-cycle-carousel-fluid="true">
<a class="widget-pic" href="{{link_to_show}}" target="_blank">
<img src="{{thumb-src}}" alt="">

View File

@ -1,20 +0,0 @@
<table class="table table-hover table-striped survey-index">
<caption><h3>{{page-title}}</h3></caption>
<thead>
<tr>
<th class="col-md-6">{{th_title}}</th>
<th class="col-md-3">{{th_time_range}}</th>
<th class="col-md-1">{{th_write}}</th>
<th class="col-md-1">{{th_result}}</th>
</tr>
</thead>
<tbody data-level="0" data-list="surveys">
<tr>
<td>{{title}}</td>
<td>{{time_range}}</td>
<td>{{write}}</td>
<td>{{result}}</td>
</tr>
</tbody>
</table>
{{pagination_goes_here}}

View File

@ -1,4 +1,5 @@
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<%= favicon_link_tag (current_site.favicon.blank? ? 'favicon.ico' : current_site.favicon.url) %>
<title><%= render_site_title %></title>
@ -7,7 +8,8 @@
<%= stylesheet_link_tag "template/template"%>
<%= javascript_include_tag "lib/jquery-1.11.0.min"%>
<%= javascript_include_tag "bootstrap"%>
<%= javascript_include_tag "plugin/jquery.lite.image.resize"%>
<%= javascript_include_tag "plugin/modernizr"%>
<%= javascript_include_tag "plugin/jquery-bullseye-min"%>
<%= javascript_include_tag "plugin/jquery.cycle2.min"%>
<%= javascript_include_tag "app"%>
<%= javascript_include_tag "#{@dataApi}" if @dataApi != nil%>

View File

@ -1,35 +0,0 @@
<div class="tab">
<div class="tab-list" data-list="tags" data-level="0">
<div class="tab-item">
<a href="#{{tag-id}}" class="tab-link">{{tag-name}}</a>
</div>
<div class="tab-body">
<div class="annc-content">
<h3 class="annc-heading">
<a href="" class="annc-more">{{heading-announcements}}</a>
</h3>
<div class="pagination" data-quant="1">
<a href="{{annc-prev}}" class="prev" rel="prev">{{Prev}}</a>
<a href="{{annc-next}}" class="next" rel="next">{{Next}}</a>
</div>
<ul class="list" data-list="announcements" data-level="1">
<li class="list-item">
<a href="{{link}}">{{title}}</a>
</li>
</ul>
</div>
<div class="wlink-content">
<h3 class="wlink-heading">{{heading-links}}</h3>
<div class="pagination" data-quant="1">
<a href="{{wlink-prev}}" class="prev" rel="prev">{{Prev}}</a>
<a href="{{wlink-next}}" class="next" rel="next">{{Next}}</a>
</div>
<ul class="list" data-list="links" data-level="1">
<li class="list-item">
<a href="{{url}}" target="_blank">{{title}}</a>
</li>
</ul>
</div>
</div>
</div>
</div>

View File

@ -1,115 +0,0 @@
<div class="w-annc-weblink" id="annoucement_link_widget">
<div class="tab">
<div class="tab-list" data-list="tags" data-level="0">
<div class="tab-item">
<a href="#{{tag-id}}" class="tab-link">{{tag-name}}</a>
</div>
<div class="tab-body">
<div class="annc-content">
<h3 class="annc-heading">
<a href="" class="annc-more">{{heading-announcements}}</a>
</h3>
<div class="pagination" data-quant="1">
<a href="{{annc-prev}}" class="prev" rel="prev">{{Prev}}</a>
<a href="{{annc-next}}" class="next" rel="next">{{Next}}</a>
</div>
<ul class="list" data-list="announcements" data-level="1">
<li class="list-item">
<a href="{{link}}">{{title}}</a>
</li>
</ul>
</div>
<div class="wlink-content">
<h3 class="wlink-heading">{{heading-links}}</h3>
<div class="pagination" data-quant="1">
<a href="{{wlink-prev}}" class="prev" rel="prev">{{Prev}}</a>
<a href="{{wlink-next}}" class="next" rel="next">{{Next}}</a>
</div>
<ul class="list" data-list="links" data-level="1">
<li class="list-item">
<a href="{{url}}" target="_blank">{{title}}</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
// $.ajax({
// "type" : "get",
// "dataType" : "html",
// "data" : {"sub_part_id" : $("#annoucement_link_widget").data("subpart-id")},
// "url" : "/<%= I18n.locale.to_s %>/xhr/announcement_link_widget/content"
// }).done(function(data){
// $("#annoucement_link_widget").html(data);
// bindHandlers();
// })
bindHandlers();
});
var bindHandlers = function(){
var quant = 5,
$pagination = $('.pagination');
var itemSelect = function(r, el) {
var range = (r * quant);
$(el).children('.list-item').hide();
for (var i = range - quant; i < range; i++) {
$(el).children('.list-item').eq(i).show();
};
}
var pagination = function(q, m, el) {
if(q == 1 && m > 1) {
$(el).children('.prev').css({'color': '#6C6C6C'});
$(el).children('.next').css({'color': '#cc0033'});
} else if(q > 1 && q < m) {
$(el).children('a').css({'color': '#cc0033'});
} else if(q == m && m > 1) {
$(el).children('.prev').css({'color': '#cc0033'});
$(el).children('.next').css({'color': '#6C6C6C'});
} else if(m == 1) {
$(el).children('.next').css({'color': '#6C6C6C'});
}
}
$pagination.each(function(index, el) {
var max = Math.ceil($(el).next('.list').children('.list-item').length / 5),
quant = $(el).data('quant')
pagination(quant, max, $(el));
});
$('.list').each(function(index, el) {
itemSelect(1, el);
});
$('.tab-item').eq(0).addClass('active');
$('.tab-body').eq(0).addClass('active');
$('.tab-item').on('click', function(e) {
$('.tab-item').removeClass('active').next('.tab-body').removeClass('active');
$(this).addClass('active').next('.tab-body').addClass('active');
e.preventDefault();
});
$('.pagination').on('click', '.prev, .next', function(event) {
var tragetClass = $(this).attr('class'),
max = Math.ceil($(this).closest('.pagination').next('.list').children('.list-item').length / 5),
quant = $(this).closest('.pagination').data('quant'),
$pagination = $(this).closest('.pagination'),
$el = $(this).closest('.pagination').next('.list');
switch(tragetClass) {
case 'next':
quant += 1;
quant > max ? quant = max : null;
break;
case 'prev':
quant -= 1;
quant < 1 ? quant = 1 : null;
break;
}
$(this).closest('.pagination').data('quant', quant);
pagination(quant, max, $pagination);
itemSelect(quant, $el);
event.preventDefault();
});
}
</script>

View File

@ -1,9 +0,0 @@
{
"widgets" : [
{
"filename" : "widget1",
"name" : "Widget with image",
"thumbnail" : "1.png"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

View File

@ -1,11 +1,11 @@
<div data-ps="">
<h3>{{widget_title}}</h3>
<ul data-list="pages" data-level="0">
<li>
<a href="{{url}}" target="{{target}}">{{page_name}}</a>
<ul data-list="children" data-level="1">
<li>
<a href="{{url}}" target="{{target}}">{{page_name}}</a>
<div class="submenu-wrap">
<h3 class="submenu__title">{{widget_title}}</h3>
<ul data-list="pages" class="submenu__list level-1" data-level="0">
<li class="submenu__item level-1">
<a class="submenu__link level-1" href="{{url}}" target="{{target}}">{{page_name}}</a>
<ul class="submenu__list level-2" data-list="children" data-level="1">
<li class="submenu__item level-2">
<a class="submenu__link level-2" href="{{url}}" target="{{target}}">{{page_name}}</a>
<ul data-list="children" data-level="2">
<li>
<a href="{{url}}" target="{{target}}">{{page_name}}</a>

View File

@ -1,20 +0,0 @@
<div class="widget-sitemenu widget1">
<h3 class="widget-title">
<span>{{widget-title}}</span>
</h3>
<ul class="list-unstyled sitemenu-menu-level-0" data-list="pages" data-level="0">
<li>
<a href="{{url}}" target="{{target}}">{{page_name}}</a>
<ul class="list-unstyled sitemenu-menu-level-1" data-list="children" data-level="1">
<li>
<a href="{{url}}" target="{{target}}">{{page_name}}</a>
<ul class="list-unstyled sitemenu-menu-level-2" data-list="children" data-level="2">
<li>
<a href="{{url}}" target="{{target}}">{{page_name}}</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>

View File

@ -101,7 +101,7 @@ if Role.count==0
role_status.save
attribute_field = AttributeField.new
attribute_field.key = 'Job_Title'
attribute_field.key = 'job_title'
attribute_field.role_id = role.id
attribute_field.title_translations = {:en=>'Job Title', :zh_tw=>'職稱'}
attribute_field.markup = 'select'
@ -175,7 +175,7 @@ if Role.count==0
role_status.save
attribute_field = AttributeField.new
attribute_field.key = 'Job_Title'
attribute_field.key = 'job_title'
attribute_field.role_id = role.id
attribute_field.title_translations = {:en=>'Job Title', :zh_tw=>'職稱'}
attribute_field.markup = 'select'
@ -258,7 +258,7 @@ if User.count==0
user.member_profile = profile
user.user_name = "admin"
user.password = "Ab-5508881"
user.email = "servicet@rulingcom.com"
user.email = "service@rulingcom.com"
user.approved = true
user.save