This commit is contained in:
ken 2026-09-03 17:10:43 +08:00
parent 96b1ff2305
commit 3ae7bea4bd
27 changed files with 296 additions and 136 deletions

View File

@ -509,20 +509,28 @@ function initdata1() {
}); });
//播放驗證碼語音 //播放驗證碼語音
$(function () { $(function () {
$('.ask-question') var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
.find('.controls button.fas.fa-volume-up') var isEn = pageLang.startsWith('en');
.each(function () { var label = isEn ? 'Play Captcha Voice' : '播放驗證碼語音';
const $btn = $(this);
// 已經補過就不重複處理 $('.ask-question')
if ($btn.attr('aria-label')) return; .find('.controls button.fas.fa-volume-up')
.each(function () {
var $btn = $(this);
$btn.attr({ $btn.attr({
'aria-label': '播放驗證碼語音', 'aria-label': label,
'aria-controls': 'captcha_audio', 'title': label,
'role': 'button' 'aria-controls': 'captcha_audio',
}); 'role': 'button'
}); });
// ✅ 同步更新 sr-only 文字(若有)
var $sr = $btn.find('.sr-only');
if ($sr.length > 0) {
$sr.text(label);
}
});
}); });
//刪除td的id //刪除td的id
@ -893,7 +901,7 @@ function initdata1() {
var isLinkImage = $parentA.length > 0 && $parentA.text().replace(/\u00a0/g, '').trim() === ""; var isLinkImage = $parentA.length > 0 && $parentA.text().replace(/\u00a0/g, '').trim() === "";
// --- 1. 處理「裝飾性圖片」標註 --- // --- 1. 處理「裝飾性圖片」標註 ---
if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片" || currentAlt === "這是一張圖片" || currentTitle === "這是一張圖片") { if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片" || currentAlt === "這是一張圖片" || currentTitle === "這是一張圖片"||currentAlt === "This is a image" ||currentTitle === "This is a image"){
$img.attr('alt', ''); $img.attr('alt', '');
$img.removeAttr('title'); $img.removeAttr('title');
return; return;
@ -1095,56 +1103,59 @@ $(function() {
} }
} }
// E. 重新計算標題 (關鍵邏輯:若 hasOriginalTitle 為真,則不進入此區塊) // E. 重新計算標題 (關鍵邏輯:若 hasOriginalTitle 為真,則不進入此區塊)
if (!hasOriginalTitle) { if (!hasOriginalTitle) {
if (linkText === "" && $img.length > 0) { if (linkText === "" && $img.length > 0) {
var rawAlt = ($img.attr('alt') || '').trim(); var rawAlt = ($img.attr('alt') || '').trim();
var forbidden = ['這是一張圖片', '圖片', 'image', 'photo', '圖', '']; var forbidden = ['這是一張圖片', '圖片', 'image', 'photo', '圖', ''];
var imgAlt = forbidden.some(function(txt) { return rawAlt.toLowerCase() === txt; }) var imgAlt = forbidden.some(function(txt) { return rawAlt.toLowerCase() === txt; })
? ($a.attr('aria-label') || i18n.link) : rawAlt; ? ($a.attr('aria-label') || i18n.link) : rawAlt;
var fileInfo = fileExt ? '[' + fileExt.toUpperCase() + '] ' : ''; var fileInfo = fileExt ? '[' + fileExt.toUpperCase() + '] ' : '';
$a.attr('title', (fileInfo + imgAlt + " " + windowTask).trim()); $a.attr('title', (fileInfo + imgAlt + " " + windowTask).trim());
$img.attr('alt', imgAlt); $img.attr('alt', imgAlt);
} }
else if (linkText !== "") { else if (linkText !== "") {
if (fileExt !== "" || hasBadSymbol || currentTitle === "" || currentTitle.includes('/uploads/')) { if (fileExt !== "" || hasBadSymbol || currentTitle === "" || currentTitle.includes('/uploads/')) {
if (fileExt !== "") { if (fileExt !== "") {
$a.attr('title', linkText + " ." + fileExt + " " + windowTask); $a.attr('title', linkText + " ." + fileExt + " " + windowTask);
} else { } else {
$a.attr('title', windowTask); $a.attr('title', windowTask);
}
} }
} }
} }
}
// ✅ 符合 HM1240404Etitle 不應與連結文字或圖片 alt 重複 // ✅ 符合 HM1240404Etitle 不應與連結文字或圖片 alt 重複
if (hasOriginalTitle && currentTitle !== "") { if (hasOriginalTitle && currentTitle !== "") {
var titleWithoutWindow = currentTitle var titleWithoutWindow = currentTitle
.replace('(在本視窗開啟)', '') .replace('(在本視窗開啟)', '')
.replace('(在新視窗開啟)', '') .replace('(在新視窗開啟)', '')
.replace('Open in this window', '') .replace('Open in this window', '')
.replace('Open in new window', '') .replace('Open in new window', '')
.replace('另開新視窗前往', '') .replace('另開新視窗前往', '')
.replace('另開新視窗', '') .replace('另開新視窗', '')
.trim(); .trim();
// ✅ title 去掉開窗字串後,若與連結文字或圖片原始 alt 相同,則只保留開窗提示 // ✅ title 去掉開窗字串後,若與連結文字或圖片原始 alt 相同,則只保留開窗提示
if ( // ✅ 新增:若 linkText 包含副檔名且 title 也是同樣檔名,也只保留開窗提示
(titleWithoutWindow === linkText && linkText !== i18n.link) || if (
(imgAltOriginal !== '' && titleWithoutWindow === imgAltOriginal) (titleWithoutWindow === linkText && linkText !== i18n.link) ||
) { (imgAltOriginal !== '' && titleWithoutWindow === imgAltOriginal) ||
$a.attr('title', windowTask); (fileExt !== '' && linkText.toLowerCase().endsWith('.' + fileExt) && titleWithoutWindow === linkText)
} ) {
$a.attr('title', windowTask);
// ✅ 最終清理:若 title 出現空括號 () 則移除並補上正確開窗提示 return; // ✅ 加上 return避免繼續執行後面的清理邏輯造成二次污染
var finalTitle = ($a.attr('title') || '').trim();
if (finalTitle.includes('()')) {
finalTitle = finalTitle.replace(/\(\)/g, '').trim();
$a.attr('title', finalTitle + ' ' + windowTask);
}
} }
// ✅ 最終清理:若 title 出現空括號 () 則移除並補上正確開窗提示
var finalTitle = ($a.attr('title') || '').trim();
if (finalTitle.includes('()')) {
finalTitle = finalTitle.replace(/\(\)/g, '').trim();
$a.attr('title', finalTitle + ' ' + windowTask);
}
}
// F. 最終清理:移除冗餘 label避免螢幕閱讀器唸兩次 // F. 最終清理:移除冗餘 label避免螢幕閱讀器唸兩次
$a.removeAttr('aria-label'); $a.removeAttr('aria-label');
}); });
@ -1178,6 +1189,47 @@ $(function() {
fixAccessibilityAll(); fixAccessibilityAll();
}, 800); }, 800);
}); });
// 修正漢堡選單按鈕無障礙
$(function() {
function fixNavbarToggleA11y() {
var isEn = $('html').attr('lang') === 'en';
var label = isEn ? '開啟或關閉導覽選單' : '開啟或關閉導覽選單';
$('.navbar-toggle').each(function() {
var $btn = $(this);
// 修正 title
$btn.attr('title', label);
// 修正 sr-only 文字(原本是 "Toggle navigation"
var $sr = $btn.find('.sr-only');
if ($sr.length) {
$sr.text(label);
} else {
$btn.prepend('<span class="sr-only">' + label + '</span>');
}
// 補上 aria-label
$btn.attr('aria-label', label);
// 補上 aria-expanded依據目前是否展開
if (!$btn.attr('aria-expanded')) {
var isExpanded = !$btn.hasClass('collapsed');
$btn.attr('aria-expanded', isExpanded ? 'true' : 'false');
}
// 點擊時同步更新 aria-expanded
$btn.off('click.navA11y').on('click.navA11y', function() {
setTimeout(function() {
var isExpanded = !$('.navbar-toggle').hasClass('collapsed');
$('.navbar-toggle').attr('aria-expanded', isExpanded ? 'true' : 'false');
}, 50);
});
});
}
setTimeout(fixNavbarToggleA11y, 500);
});
$(function() { $(function() {
@ -2067,29 +2119,31 @@ $(document).ready(function () {
}); });
$(document).ready(function () { //rucaptcha-image
$('.rucaptcha-image').removeAttr('onload'); $(document).ready(function () {
// >>> 修正:先確認頁面上真的有驗證碼圖片,再往下執行,避免沒有驗證碼的頁面也發出多餘的 wav 請求
// 檢查是否已插入過 if ($('.rucaptcha-image').length) {
if (!$('#captcha_audio').length) { $('.rucaptcha-image').removeAttr('onload');
const audioButton = $(` // 檢查是否已插入過
<button if (!$('#captcha_audio').length) {
title="播放驗證碼語音" const audioButton = $(`
type="button" <button
onclick="document.getElementById('captcha_audio').play();" title="播放驗證碼語音"
class="fas fa-volume-up" type="button"
aria-label="播放驗證碼語音" onclick="document.getElementById('captcha_audio').play();"
role="button" class="fas fa-volume-up"
style="font-size: 1.5em; color: #333; cursor: pointer; border: 2px solid #333; padding: 0.2em;"> aria-label="播放驗證碼語音"
<span class="sr-only">播放驗證碼語音</span> role="button"
</button> style="font-size: 1.5em; color: #333; cursor: pointer; border: 2px solid #333; padding: 0.2em;">
`); <span class="sr-only">播放驗證碼語音</span>
</button>
const audio = $('<audio id="captcha_audio" src="/rucaptcha/?format=wav&amp;locale=zh_tw"></audio>'); `);
const audio = $('<audio id="captcha_audio" src="/rucaptcha/?format=wav&amp;locale=zh_tw"></audio>');
$('.rucaptcha-image').after(audioButton, audio); $('.rucaptcha-image').after(audioButton, audio);
} }
}); }
// <<< 修正結束
});
//萬用表格searchbtn2 //萬用表格searchbtn2
$(document).ready(function () { $(document).ready(function () {
@ -2880,11 +2934,15 @@ $(document).ready(function () {
}); });
//post //post
$(document).ready(function () { $(document).ready(function () {
setTimeout(function () { setTimeout(function () {
$('iframe.twitter-share-button, iframe.twitter-tweet-button').each(function () { var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
$(this).attr('title', '分享至 X 在新視窗開啟'); var isEn = pageLang.startsWith('en');
}); var title = isEn ? 'Share to X Open in new window' : '分享至 X 在新視窗開啟';
}, 1500);
$('iframe.twitter-share-button, iframe.twitter-tweet-button').each(function () {
$(this).attr('title', title);
});
}, 1500);
}); });
//orbitbarlogo無障礙 //orbitbarlogo無障礙
$(function() { $(function() {
@ -3076,4 +3134,82 @@ $(document).ready(function () {
// } // }
// }); // });
//banner英文
$(function() {
function fixBannerA11yByLang() {
setTimeout(function() {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var i18n = {
playControls: isEn ? 'Playback Controls' : '播放控制選項',
resume: isEn ? 'Play' : '繼續播放',
pause: isEn ? 'Pause' : '暫停播放',
prev: isEn ? 'Previous' : '上一張',
next: isEn ? 'Next' : '下一張',
slide: isEn ? 'Slide' : '第',
slideUnit: isEn ? '' : ' 張投影片'
};
$('.w-ba-banner').each(function() {
var $banner = $(this);
// ✅ 播放控制選項 radiogroup label
$banner.find('.controlplay').attr('aria-label', i18n.playControls);
// ✅ 繼續播放按鈕
$banner.find('.resume-slide').attr({
'aria-label': i18n.resume,
'title': i18n.resume
});
$banner.find('.resume-slide p').text(i18n.resume);
// ✅ 暫停播放按鈕
$banner.find('.pause-slide').attr({
'aria-label': i18n.pause,
'title': i18n.pause
});
$banner.find('.pause-slide p').text(i18n.pause);
// ✅ 上一張按鈕
$banner.find('.prev-button').attr('aria-label', i18n.prev);
// ✅ 下一張按鈕
$banner.find('.next-button').attr('aria-label', i18n.next);
// ✅ Pager 按鈕
var $slides = $banner.find('.w-ba-banner__slide');
$banner.find('.banner-pager button').each(function(index) {
var slideTitle = $slides.eq(index).data('cycle-title') || '';
var ariaLabel = isEn
? i18n.slide + ' ' + (index + 1) + (slideTitle ? ' ' + slideTitle : '')
: i18n.slide + (index + 1) + i18n.slideUnit + (slideTitle ? ' ' + slideTitle : '');
$(this).attr({
'aria-label': ariaLabel,
'title': ariaLabel
});
});
});
// ✅ Cycle2 初始化後也重新處理 Pager因為 pager 是動態產生的)
$('.w-ba-banner .cycle-slideshow').on('cycle-post-initialize cycle-after', function() {
var $banner = $(this).closest('.w-ba-banner');
var $slides = $banner.find('.w-ba-banner__slide');
$banner.find('.banner-pager button').each(function(index) {
var slideTitle = $slides.eq(index).data('cycle-title') || '';
var ariaLabel = isEn
? i18n.slide + ' ' + (index + 1) + (slideTitle ? ' ' + slideTitle : '')
: i18n.slide + (index + 1) + i18n.slideUnit + (slideTitle ? ' ' + slideTitle : '');
$(this).attr({
'aria-label': ariaLabel,
'title': ariaLabel
});
});
});
}, 800);
}
fixBannerA11yByLang();
});
}(jQuery, window)); }(jQuery, window));

View File

@ -6,6 +6,11 @@
.fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{ .fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{
font-family: "FontAwesome"; font-family: "FontAwesome";
} }
li#language-li {
@media(max-width:767px){
display: none !important;
}
}
#orbit-bar .orbit-bar-inner > label:focus, #orbit-bar .orbit-bar-inner > label.focus{ #orbit-bar .orbit-bar-inner > label:focus, #orbit-bar .orbit-bar-inner > label.focus{
.orbit-bar-search-sign-language{ .orbit-bar-search-sign-language{
display: block display: block
@ -209,6 +214,6 @@ img{
// overflow-x: auto; // overflow-x: auto;
// } // }
// } // }
*[data-pp]>.editmode-ps>a, .admin-subpart-area .content>.editmode-ps>a{ input[type=checkbox]:focus {
position: !important; outline: 0.3125em auto -webkit-focus-ring-color;
} }

View File

@ -145,7 +145,7 @@
@extend .unity-title; @extend .unity-title;
} }
.link { background-color: #1368d4 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .link { background-color: #1368d4 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.txt { background-color: #3a8a40 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .txt { background-color: #2a7e31 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.xlsx { background-color: #9e3050 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .xlsx { background-color: #9e3050 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.pdf { background-color: #2a7d36 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .pdf { background-color: #2a7d36 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.docx { background-color: #5e46a0 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .docx { background-color: #5e46a0 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
@ -154,7 +154,7 @@
.jpg { background-color: #8f3333 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .jpg { background-color: #8f3333 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.zip { background-color: #8a6400 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .zip { background-color: #8a6400 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.rar { background-color: #9e5000 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .rar { background-color: #9e5000 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.xls { background-color: #3a8a40 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .xls { background-color: #2a7e31 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.odt { background-color: #767676 !important; margin-left: 0.5em; } /* 對比 4.6:1 */ .odt { background-color: #767676 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
.table>caption+thead>tr:first-child>td, .table>caption+thead>tr:first-child>th, .table>colgroup+thead>tr:first-child>td, .table>colgroup+thead>tr:first-child>th, .table>thead:first-child>tr:first-child>td, .table>thead:first-child>tr:first-child>th{ .table>caption+thead>tr:first-child>td, .table>caption+thead>tr:first-child>th, .table>colgroup+thead>tr:first-child>td, .table>colgroup+thead>tr:first-child>th, .table>thead:first-child>tr:first-child>td, .table>thead:first-child>tr:first-child>th{
// border-top: 0.0625em solid #ddd; // border-top: 0.0625em solid #ddd;

View File

@ -29,9 +29,7 @@
</div> </div>
</div> </div>
<div class="w-ad-banner__pager-2 w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}" data-list="images" data-level="0"> <ul class="w-ba-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<li><button title="Slide {{slide_number}}" aria-label="Pager"><span style="display: none;">Slide {{slide_number}}</span></button></li>
</div>
<ul class="controlplay" role="radiogroup" aria-label="播放控制選項"> <ul class="controlplay" role="radiogroup" aria-label="播放控制選項">
<a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive"> <a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive">
<i aria-hidden="true"></i> <i aria-hidden="true"></i>
@ -49,20 +47,23 @@
</ul> </ul>
</div> </div>
<script> <script>
var flag = 1; $('[data-subpart-id="{{subpart-id}}"] .pause-slide').click(function(){
$('.pause-slide').click(function(){ $(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause'); $(this).addClass('active')
}); $(this).parents('.controlplay').eq(0).find('.resume-slide').removeClass('active')
$('.resume-slide').click(function(){ });
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume'); $('[data-subpart-id="{{subpart-id}}"] .resume-slide').click(function(){
}); $(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume');
$('.next-button').off('click').on('click',function(){ $(this).addClass('active')
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next"); $(this).parents('.controlplay').eq(0).find('.pause-slide').removeClass('active')
});
$('[data-subpart-id="{{subpart-id}}"] .next-button').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next");
}) })
$('.prev-button').off('click').on('click',function(){ $('[data-subpart-id="{{subpart-id}}"] .prev-button').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev"); $(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev");
}); });
/* 修正點:處理 Pager 無障礙朗讀文字 */ /* 修正點:處理 Pager 無障礙朗讀文字 */
$('.cycle-slideshow').on('cycle-post-initialize', function(event, optionHash) { $('.cycle-slideshow').on('cycle-post-initialize', function(event, optionHash) {
var $container = $(this).closest('.w-ba-banner'); var $container = $(this).closest('.w-ba-banner');
@ -79,3 +80,23 @@
}); });
}); });
</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: 0;
top: 50%;
}
.next-button,.prev-button{
cursor: pointer;
}
</style>

View File

@ -3,7 +3,7 @@
<ul class="i-annc__list row" data-level="0" data-list="announcements"> <ul class="i-annc__list row" data-level="0" data-list="announcements">
<li class="i-annc__item rotate0"> <li class="i-annc__item rotate0">
<div class="i-annc__img-wrap bullseye"> <div class="i-annc__img-wrap bullseye">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}"> <a href="{{link_to_show}}" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}"> <img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</a> </a>
</div> </div>

View File

@ -2,9 +2,9 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3> <h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list row" data-level="0" data-list="announcements"> <ul class="i-annc__list row" data-level="0" data-list="announcements">
<li class="i-annc__item col-md-3 col-sm-3"> <li class="i-annc__item col-md-3 col-sm-3">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}"> <a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap bullseye"> <div class="i-annc__img-wrap bullseye">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}"> <img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div> </div>
<div class="i-annc__content-wrap"> <div class="i-annc__content-wrap">
<div class="i-annc__meta"> <div class="i-annc__meta">

View File

@ -2,10 +2,10 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3> <h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list" data-level="0" data-list="announcements"> <ul class="i-annc__list" data-level="0" data-list="announcements">
<li class="i-annc__item row"> <li class="i-annc__item row">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}"> <a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap col-sm-4"> <div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}"> <img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div> </div>
<div class="i-annc__content-wrap col-sm-8"> <div class="i-annc__content-wrap col-sm-8">

View File

@ -2,7 +2,7 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3> <h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list" data-level="0" data-list="announcements"> <ul class="i-annc__list" data-level="0" data-list="announcements">
<li class="i-annc__item row"> <li class="i-annc__item row">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}"> <a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__content-wrap col-sm-8"> <div class="i-annc__content-wrap col-sm-8">
<div class="i-annc__meta"> <div class="i-annc__meta">
<span class="i-annc__status-wrap" data-list="statuses" data-level="1"> <span class="i-annc__status-wrap" data-list="statuses" data-level="1">
@ -23,7 +23,7 @@
<p class="i-annc__subtitle">{{subtitle}}</p> <p class="i-annc__subtitle">{{subtitle}}</p>
</div> </div>
<div class="i-annc__img-wrap col-sm-4"> <div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}"> <img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div> </div>
</a> </a>
</li> </li>

View File

@ -17,8 +17,7 @@
<dl class="i-archive__file-list" data-list="files" data-level="2"> <dl class="i-archive__file-list" data-list="files" data-level="2">
<dd class="i-archive__file-wrap"> <dd class="i-archive__file-wrap">
<i class="fa-solid fa-file"></i> <i class="fa-solid fa-file"></i>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}</a> <a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="i-archive__file-type label label-primary {{file-type}}">{{file-type}}</span></a>
<span class="i-archive__file-type label label-primary {{file-type}}">{{file-type}}</span>
</dd> </dd>
</dl> </dl>
</div> </div>

View File

@ -18,8 +18,7 @@
<div class="panel-body"> <div class="panel-body">
<ul class="i-archive-files-list" data-list="files" data-level="2"> <ul class="i-archive-files-list" data-list="files" data-level="2">
<li> <li>
<a href="{{file-url}}" class="i-archive-files-item" target="{{target}}" title="{{file-name}}">{{file-name}}</a> <a href="{{file-url}}" class="i-archive-files-item" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary {{file-type}}">{{file-type}}</span></a>
<span class="label label-primary {{file-type}}">{{file-type}}</span>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -4,7 +4,7 @@
<li class="i-annc__item row"> <li class="i-annc__item row">
<a href="{{link_to_show}}" title="{{img_description}}"> <a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap col-sm-4"> <div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}"> <img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div> </div>
<div class="i-annc__content-wrap col-sm-8"> <div class="i-annc__content-wrap col-sm-8">
<div class="i-annc__meta"> <div class="i-annc__meta">

View File

@ -23,7 +23,7 @@
<p class="i-annc__subtitle">{{subtitle}}</p> <p class="i-annc__subtitle">{{subtitle}}</p>
</div> </div>
<div class="i-annc__img-wrap col-sm-4"> <div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}"> <img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div> </div>
</a> </a>
</li> </li>

View File

@ -4,7 +4,7 @@
<li class="i-annc__item col-md-4"> <li class="i-annc__item col-md-4">
<a href="{{link_to_show}}" title="{{img_description}}"> <a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap bullseye" style="position:relative"> <div class="i-annc__img-wrap bullseye" style="position:relative">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}"> <img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div> </div>
<div class="i-annc__content-wrap"> <div class="i-annc__content-wrap">
<div class="i-annc__meta"> <div class="i-annc__meta">

View File

@ -8,7 +8,7 @@
<div class="i-member-item-inner clearfix"> <div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap col-sm-3"> <div class="i-member-pic-wrap col-sm-3">
<a href="{{link_to_show}}" title="{{name}}"> <a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic img-thumbnail" src="{{image}}" title="{{name}}"> <img class="i-member-pic img-thumbnail" src="{{image}}" alt="{{name}}">
</a> </a>
</div> </div>
<div class="i-member-profile-data-wrap col-sm-9"> <div class="i-member-profile-data-wrap col-sm-9">

View File

@ -8,7 +8,7 @@
<div class="i-member-item-inner clearfix"> <div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap col-sm-4 col-xs-4"> <div class="i-member-pic-wrap col-sm-4 col-xs-4">
<a href="{{link_to_show}}" title="{{name}}"> <a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" title="{{name}}"> <img class="i-member-pic" src="{{image}}" alt="{{name}}">
</a> </a>
</div> </div>
<div class="i-member-profile-data-wrap col-sm-8 col-xs-8"> <div class="i-member-profile-data-wrap col-sm-8 col-xs-8">

View File

@ -8,7 +8,7 @@
<div class="i-member-item-inner clearfix"> <div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap"> <div class="i-member-pic-wrap">
<a href="{{link_to_show}}" title="{{name}}"> <a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" title="{{name}}"> <img class="i-member-pic" src="{{image}}" alt="{{name}}">
</a> </a>
</div> </div>
<div class="i-member-profile-data-wrap"> <div class="i-member-profile-data-wrap">

View File

@ -8,7 +8,7 @@
<div class="i-member-item-inner clearfix"> <div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap"> <div class="i-member-pic-wrap">
<a href="{{link_to_show}}" title="{{name}}"> <a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" title="{{name}}"> <img class="i-member-pic" src="{{image}}" alt="{{name}}">
</a> </a>
</div> </div>
<div class="i-member-profile-data-wrap"> <div class="i-member-profile-data-wrap">

View File

@ -10,7 +10,7 @@
<div class="i-member-item-inner clearfix"> <div class="i-member-item-inner clearfix">
<div class="i-member-pic-wrap"> <div class="i-member-pic-wrap">
<a href="{{link_to_show}}" title="{{name}}"> <a href="{{link_to_show}}" title="{{name}}">
<img class="i-member-pic" src="{{image}}" title="{{name}}"> <img class="i-member-pic" src="{{image}}" alt="{{name}}">
</a> </a>
</div> </div>

View File

@ -13,12 +13,11 @@
white-space: nowrap; white-space: nowrap;
} }
.universal-th-text{ .universal-th-text{
overflow: hidden; overflow: hidden;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
white-space: normal; white-space: pre !important;
} }
.universal-dropdown-menu { .universal-dropdown-menu {
padding: 15px 18px; padding: 15px 18px;
white-space: nowrap; white-space: nowrap;

View File

@ -6,7 +6,7 @@
<li class="widget-content"> <li class="widget-content">
<div class="link-img-wrap{{display_image}}"> <div class="link-img-wrap{{display_image}}">
<a href="{{link_to_show}}" target="{{target}}" title="{{img_description}}"> <a href="{{link_to_show}}" target="{{target}}" title="{{img_description}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}"> <img src="{{img_src}}" alt="{{img_description}}">
</a> </a>
</div> </div>
<span data-list="statuses" data-level="1"> <span data-list="statuses" data-level="1">

View File

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

View File

@ -7,7 +7,7 @@
<div class="link-img-wrap{{display_image}}"> <div class="link-img-wrap{{display_image}}">
<a href="{{link_to_show}}" target="{{target}}" title="{{img_description}}"> <a href="{{link_to_show}}" target="{{target}}" title="{{img_description}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}"> <img src="{{img_src}}" alt="{{img_description}}">
</a> </a>
</div> </div>
<div class="widget-content-title"> <div class="widget-content-title">

View File

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

View File

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

View File

@ -7,7 +7,7 @@
<div class="hex-border"> <div class="hex-border">
<a href="{{link_to_show}}" target="{{target}}" title="{{title_text}}"> <a href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
<div class="link-img-wrap{{display_image}}"> <div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}"> <img src="{{img_src}}" alt="{{img_description}}">
</div> </div>
<a class="widget-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}" onclick="{{onclick}}">{{title}}</a> <a class="widget-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}" onclick="{{onclick}}">{{title}}</a>
<span data-list="statuses" data-level="1"> <span data-list="statuses" data-level="1">

View File

@ -6,7 +6,7 @@
<li class="index-content"> <li class="index-content">
<a class="index-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}"> <a class="index-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
<div class="link-img-wrap{{display_image}}"> <div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}"> <img src="{{img_src}}" alt="{{img_description}}">
</div> </div>
<h4> <h4>
{{title}} {{title}}

View File

@ -6,7 +6,7 @@
<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="{{target}}" title="{{title_text}}"> <a class="index-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
<div class="link-img-wrap{{display_image}}"> <div class="link-img-wrap{{display_image}}">
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}"> <img src="{{img_src}}" alt="{{img_description}}">
</div> </div>
<h4> <h4>
<span class="link-title"> <span class="link-title">