This commit is contained in:
BoHung Chiu 2021-05-19 21:54:38 +08:00
parent 696765ef4c
commit 480072a21c
4 changed files with 220 additions and 52 deletions

View File

@ -114,9 +114,11 @@ if bundle_update_flag
if !last_index.nil?
default_announcement_widget_info.each do |h|
name_without_index = h["name"]["zh_tw"].sub(/\d+/,'')
if (widget_info.select{|hh| hh["name"]["zh_tw"].include?(name_without_index)}.count == 0)
widget_info_index = (widget_info.index{|hh| hh["name"]["zh_tw"].include?(name_without_index)} rescue -1)
if widget_info_index == -1
update_flag = true
copy_h = h.dup
h.delete("force_cover")
last_index = last_index + 1
copy_h["filename"] = copy_h["filename"].sub(/\d+/){|ff| last_index.to_s}
copy_h["name"].keys.each do |locale|
@ -124,6 +126,8 @@ if bundle_update_flag
end
widget_info << copy_h
Bundler.with_clean_env{%x[cp -f #{app_path}/modules/announcement/_#{h["filename"]}.html.erb #{folder}modules/announcement/_#{copy_h["filename"]}.html.erb]}
elsif h["force_cover"] == "true"
Bundler.with_clean_env{%x[cp -f #{app_path}/modules/announcement/_#{h["filename"]}.html.erb #{folder}modules/announcement/_#{widget_info[widget_info_index]["filename"]}.html.erb]}
end
end
if update_flag

File diff suppressed because one or more lines are too long

View File

@ -39,45 +39,63 @@
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
function combineul(){
for(var i=1;i<$('.widget-announcement-4 ul.w-annc__list').length;i++)
$('.widget-announcement-4 ul.w-annc__list').eq(0).find('>li').eq(-1).after($('.widget-announcement-4 ul.w-annc__list').eq(i).html());
var ullength = $('.widget-announcement-4 ul.w-annc__list').length;
for(var i = 1;i < ullength;i++)
$('.widget-announcement-4 ul.w-annc__list').eq(-1).remove();
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
for(var i=1;i<$(v).find('ul.w-annc__list').length;i++)
$(v).find('ul.w-annc__list').eq(0).find('>li').eq(-1).after($(v).find('ul.w-annc__list').eq(i).html());
var ullength = $(v).find('ul.w-annc__list').length;
for(var i = 1;i < ullength;i++)
$(v).find('ul.w-annc__list').eq(-1).remove();
})
};
var lilength = $('.widget-announcement-4 li.w-annc__item').length;
var num;
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
function reorganize(num){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').toArray();
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active") && !$(v).hasClass("hidden_item");
})
if(currentul == -1)
currentul = 0;
var li_active_idx = 0;
if(currentul != 0)
li_active_idx = $(uls[currentul]).find("li.w-annc__item").eq(0).index("li.w-annc__item");
combineul();
for(var i=1;i< Math.ceil(lilength/num);i++){
$('.widget-announcement-4 ul.w-annc__list').eq(-1).after('<ul class="w-annc__list row" data-level="0" data-list="announcements"></ul>')
var lihtml="";
//var liheight=new Array(num);
if(i != (Math.ceil(lilength/num)-1)){
for(var j=0;j<num;j++){
lihtml += "<li class='w-annc__item col-md-4'>"+$('.widget-announcement-4 li.w-annc__item').eq(i*num+j).html()+"</li>"
//liheight[j] = $('.widget-announcement-4 li.w-annc__item').eq(i*num+j).height()+20;//20=>margin-top+margin-bottom
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
var lilength = $(v).find('li.w-annc__item').length;
var ul_length = Math.ceil(lilength/num);
for(var ii=1;ii< ul_length;ii++){
var clone_ul = $(v).find('ul.w-annc__list').eq(-1).clone();
clone_ul.empty();
clone_ul.removeClass("active");
clone_ul.css("display","");
$(v).find('ul.w-annc__list').eq(-1).after(clone_ul.prop("outerHTML"));
var lihtml="";
if(ii != (ul_length-1)){
for(var j=0;j<num;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
}else{
for(var j=0;j< lilength - num *(ul_length-1) ;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
};
}else{
for(var j=0;j< lilength - num *(Math.ceil(lilength/num)-1) ;j++){
lihtml += "<li class='w-annc__item col-md-4'>"+$('.widget-announcement-4 li.w-annc__item').eq(i*num+j).html()+"</li>"
//liheight[j] = $('.widget-announcement-4 li.w-annc__item').eq(i*num+j).height()+20;//20=>margin-top+margin-bottom
};
};
$('.widget-announcement-4 ul.w-annc__list').eq(-1).html(lihtml);
};
if(Math.ceil(lilength/num) != 1 )
for(var i=0;i< lilength -num ; i++ )
$('.widget-announcement-4 ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove();
for(var i=0;i< Math.ceil(lilength/num);i++)
$('.widget-announcement-4 ul.w-annc__list').eq(i).attr("index",i);
$('.widget-announcement-4 ul.w-annc__list').css("display","none");
$('.widget-announcement-4 ul.w-annc__list').eq(0).css("display","flex");
$('.widget-announcement-4 ul.w-annc__list').eq(0).addClass("active");
$('.widget-announcement-4 ul.w-annc__list').css('padding','0 1.125em');
$('.widget-announcement-4 button').css('z-index','10');
$('.widget-announcement-4 ul.w-annc__list >li').css('width','calc('+100/num+'% - '+20/16+'em)'); //20px=>li的margin
$('.widget-announcement-4 ul.w-annc__list >li').css('float','left');
$(v).find('ul.w-annc__list').eq(-1).html(lihtml);
}
if(ul_length != 1 )
for(var i=0;i< lilength -num ; i++)
$(v).find('ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove();
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css("display","none");
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('padding','0 1.125em');
$('[data-subpart-id=\"{{subpart-id}}\"] button').css('z-index','10');
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('width','calc('+100/num+'% - '+20/16+'em)'); //20px=>li的margin
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('float','left');
var active_ul = $("[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item").eq(li_active_idx).parents("ul.w-annc__list");
active_ul.addClass("active");
active_ul.removeClass("hidden_item");
active_ul.css("display","");
};
$(window).resize(function(){
if($(window).width()>1024){
@ -105,26 +123,39 @@
var flag=false;
$('.btn-left').click(function(){
if(!flag){
var currentul = Number($('.widget-announcement-4 ul.w-annc__list.active').attr("index"));
$('.widget-announcement-4 ul.w-annc__list').css('display','none');
if(currentul - 1 < 0)
currentul += Math.ceil(lilength/num);
$('.widget-announcement-4 ul.w-annc__list').removeClass("active");
$('.widget-announcement-4 ul.w-annc__list').eq(currentul-1).addClass("active");
flag=true;
$('.widget-announcement-4 ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){flag=false;});
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul - 1 < 0)
currentul += ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul-1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){flag=false;});
};
});
$('.btn-right').click(function(){
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
if(!flag){
var currentul = Number($('.widget-announcement-4 ul.w-annc__list.active').attr("index"));
$('.widget-announcement-4 ul.w-annc__list').css("display","none");
if(currentul + 1 > Math.ceil(lilength/num) - 1)
currentul -= Math.ceil(lilength/num);
$('.widget-announcement-4 ul.w-annc__list').removeClass("active");
$('.widget-announcement-4 ul.w-annc__list').eq(currentul+1).addClass("active");
flag=true;
$('.widget-announcement-4 ul.w-annc__list.active').eq(0).effect("slide", { direction: "right", mode: 'show', duration: 500},function(){flag=false;});
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul + 1 > ul_length - 1)
currentul -= ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul+1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){flag=false;});
};
});
});

View File

@ -172,6 +172,7 @@
},
{
"filename" : "annc_widget15",
"force_cover": "true",
"name" : {
"zh_tw" : "4.5. 三欄圖文-slide ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en" : "4.5. 3-Column Standard Image + Text -slide(widget-title, image, status, postdate, category, title, subtitle)"