模块:Test:修订间差异
跳到导航
跳到搜索
无编辑摘要 |
无编辑摘要 |
||
第170行: | 第170行: | ||
:css('white-space', 'nowrap') | :css('white-space', 'nowrap') | ||
end | end | ||
function renderTable(args, columns_ids) | |||
local tbl = mw.html.create('table') | |||
:addClass('wikitable') | |||
:addClass('mw-collapsible') | |||
:addClass('plaincolumnsheaders') | |||
:css('overflow-x', 'auto') | |||
:css('width', "fit-content") | |||
:css('height', "fit-content") | |||
if args['collapsed'] then tbl:addClass('mw-collapsed') end | |||
if params["display_title"] == "true" then | |||
local caption = tbl:tag('caption') | |||
caption | |||
:wikitext(title) | |||
:css('white-space', 'nowrap') | |||
end | |||
renderHeader(tbl) | renderHeader(tbl) | ||
第191行: | 第211行: | ||
end | end | ||
table.sort(tot_row_ids) | table.sort(tot_row_ids) | ||
-- extract columns_ids in each tables | |||
-- i hate lua why array subscribtion starts at 1 | |||
local tot_columns_ids = {} | |||
for k, _ in pairs(args) do | |||
local anum = ('' .. k):match('^a(%d+)$') | |||
if anum then | |||
table.insert(tot_columns_ids, tonumber(anum)) | |||
end | |||
end | |||
table.sort(tot_columns_ids) | |||
local tab_count = 0 | local tab_count = 0 | ||
第208行: | 第239行: | ||
end | end | ||
table.insert(tabs_row_ids[tab_count], a) | table.insert(tabs_row_ids[tab_count], a) | ||
current_item_count = current_item_count + 1 | |||
if current_item_count == current_max_item then | |||
current_item_count = 0 | |||
end | |||
end | |||
local tabs_columns_ids = {} | |||
for i, a in ipairs(tot_columns_ids) do | |||
if current_item_count == 0 then | |||
if tab_count ~= 0 then table.sort(tabs_columns_ids[tab_count]) end | |||
tab_count = tab_count + 1 | |||
if args["item_in_tab"..tostring(tab_count)] then | |||
current_max_item = tonumber(args["item_in_tab"..tostring(tab_count)]) | |||
else | |||
current_max_item = tonumber(params["item_per_tab"]) | |||
end | |||
tabs_columns_ids[tab_count] = {} | |||
end | |||
table.insert(tabs_columns_ids[tab_count], a) | |||
current_item_count = current_item_count + 1 | current_item_count = current_item_count + 1 | ||
if current_item_count == current_max_item then | if current_item_count == current_max_item then | ||
第222行: | 第272行: | ||
:css("box-shadow", params["shadow"]) | :css("box-shadow", params["shadow"]) | ||
local tbl = renderTable(args, tot_row_ids) | local tbl = renderTable(args, tot_row_ids) | ||
local tbl = renderTable(args, tot_columns_ids) | |||
constraint_div:node(tbl) | constraint_div:node(tbl) | ||
return constraint_div | return constraint_div | ||
第256行: | 第307行: | ||
end | end | ||
current_count = current_count + tableLength(row_ids) | current_count = current_count + tableLength(row_ids) | ||
end | |||
for i, columns_ids in ipairs(tabs_columns_ids) do | |||
local list_ele = tab_list:tag("li") | |||
if i == 1 then | |||
list_ele:addClass("active") | |||
end | |||
local ele_title = list_ele | |||
:addClass("tab") | |||
:tag("strong") | |||
if args[params['tab_prefix']..tostring(i)] then | |||
ele_title:wikitext(args[params['tab_prefix']..tostring(i)]) | |||
else | |||
ele_title:wikitext(tostring(current_count).."~"..tostring(current_count+tableLength(columns_ids)-1)) | |||
end | |||
current_count = current_count + tableLength(columns_ids) | |||
end | end | ||
第276行: | 第343行: | ||
inner_content | inner_content | ||
:addClass("inner-content") | :addClass("inner-content") | ||
:css("columns", " | :css("columns", "2") | ||
:css("width", "auto") | :css("width", "auto") | ||
:css("height", "auto") | :css("height", "auto") | ||
local content_tbl = renderTable(args, row_ids) | local content_tbl = renderTable(args, row_ids) | ||
inner_content:node(content_tbl) | |||
end | |||
for i, columns_ids in ipairs(tabs_columns_ids) do | |||
local table_ele = tables_list:tag("div") | |||
if i == 1 then | |||
table_ele:addClass("active") | |||
end | |||
table_ele | |||
:addClass("tab-c") | |||
:css("width", "auto") | |||
:css("height", "auto") | |||
local inner_content = table_ele:tag("div") | |||
inner_content | |||
:addClass("inner-content") | |||
:css("columns", "2") | |||
:css("width", "auto") | |||
:css("height", "auto") | |||
local content_tbl = renderTable(args, columns_ids) | |||
inner_content:node(content_tbl) | inner_content:node(content_tbl) | ||
end | end | ||
第328行: | 第413行: | ||
return p._historicalActivity(args) | return p._historicalActivity(args) | ||
end | end | ||
end | |||
return p | return p |