Module:Navbox: Difference between revisions
refactor row contents from array to table of key-value pairs Tag: Reverted |
Undo revision 212910 by Ganaram inukshuk (talk) rollback for now Tag: Undo |
||
| Line 2: | Line 2: | ||
local getArgs = require("Module:Arguments").getArgs | local getArgs = require("Module:Arguments").getArgs | ||
local navbar = require("Module:Navbar")._navbar | local navbar = require("Module:Navbar")._navbar | ||
local yesno = require("Module:Yesno") | local yesno = require("Module:Yesno") | ||
| Line 18: | Line 17: | ||
-- to be refactored (currently) because they only need to be called a fixed | -- to be refactored (currently) because they only need to be called a fixed | ||
-- number of times. | -- number of times. | ||
function p.navbox_row(row_content, | function p.navbox_row(row_content, is_navbox) | ||
local | local is_navbox = (is_navbox ~= nil and is_navbox or false) | ||
local row = {} | local row = {} | ||
table.insert(row, "|-") | table.insert(row, "|-") | ||
if #row_content == 1 then | |||
-- Row is a headerless row... | |||
if is_navbox then | |||
-- Row | -- ...and row content is a nested navbox | ||
if | table.insert(row, '| style="padding: 0;" colspan="2" |') | ||
-- ...and | table.insert(row, row_content[1]) | ||
table.insert(row, | else | ||
table.insert(row, | -- ... and row content is normal content (text and links) | ||
table.insert(row, '| style="font-size: 0.9em; padding: 0.25em 0.5em;" colspan="2" | ' .. row_content[1]) | |||
-- ...and | |||
table.insert(row, | |||
end | end | ||
else | else | ||
-- Row | -- Row is a header+data row | ||
local header_style = '! style="white-space: nowrap; font-size: 0.9em; width: 5%; text-align: right; background-color: #eaecf0; padding: 0.25em 0.5em; border: 1px solid white;" |' | |||
local data_style = is_navbox | |||
and '| style="padding: 0;" |' -- For nested navboxes | |||
or '| style="font-size: 0.9em; padding: 0.25em 0.5em;" | ' -- For normal content | |||
table.insert(row, header_style .. row_content[1]) | |||
table.insert(row, data_style .. row_content[2]) | |||
end | end | ||
| Line 71: | Line 60: | ||
-- most cases, however. | -- most cases, however. | ||
function p.navbox_title(title, is_collapsible, name) | function p.navbox_title(title, is_collapsible, name) | ||
local is_root_navbox = (is_root_navbox == nil and is_root_navbox or true) -- If not specified, default to TRUE | |||
local has_navbar = name ~= nil | local has_navbar = name ~= nil | ||
local navbox_title = '' | local navbox_title = '' | ||
| Line 215: | Line 204: | ||
-- Headerless row | -- Headerless row | ||
row = {} | row = {} | ||
row | table.insert(row, data) | ||
elseif (header ~= nil and data == nil) then | elseif (header ~= nil and data == nil) then | ||
-- Dataless row | -- Dataless row; permitted for placeholder purposes | ||
row = {} | row = {} | ||
row | table.insert(row, header) | ||
row | table.insert(row, "") | ||
elseif (header ~= nil and data ~= nil) then | elseif (header ~= nil and data ~= nil) then | ||
-- Row with header and data | -- Row with header and data | ||
row = {} | row = {} | ||
row | table.insert(row, header) | ||
row | table.insert(row, data) | ||
end | end | ||
if row ~= nil then | if row ~= nil then | ||
| Line 249: | Line 238: | ||
return result | return result | ||
end | end | ||
return p | return p | ||