Module:Navbox: Difference between revisions
m fixed reversed logic for navbox title |
implement navbox nesting; some cleanup |
||
Line 5: | Line 5: | ||
-- Navbox row | -- Navbox row | ||
-- The <td> cell has a div that sets padding for row content; this is omitted if | |||
-- the row content is a child navbox. | |||
function p.navbox_row(row_content, is_row_child_navbox) | function p.navbox_row(row_content, is_row_child_navbox) | ||
local row_content = row_content or { "Header", "Content" } | local row_content = row_content or { "Header", "Content" } | ||
Line 12: | Line 14: | ||
if #row_content == 1 then | if #row_content == 1 then | ||
-- Headerless row | -- Headerless row | ||
row = row | if is_row_child_navbox then | ||
.. '<td style="width:5%; text-align:center; background-color:#eaecf0; white-space:nowrap; padding:0em; border:1px solid white" colspan="2">\n' | -- Row data is a child navbox | ||
row = row | |||
.. '<td style="width:5%; text-align:center; background-color:#eaecf0; white-space:nowrap; padding:0em; border:1px solid white" colspan="2">\n' | |||
.. row_content[1] | |||
.. '</td>\n' | |||
else | |||
-- Row data is normal data | |||
row = row | |||
.. '<td style="width:5%; text-align:center; background-color:#eaecf0; white-space:nowrap; padding:0em; border:1px solid white" colspan="2">\n' | |||
.. '<div style="padding:0.25em 0.5em">' .. row_content[1] .. '</div>\n' | |||
.. '</td>\n' | |||
end | |||
elseif #row_content == 2 then | elseif #row_content == 2 then | ||
-- Simple row with header and data | -- Simple row with header and data | ||
row = row | if is_row_child_navbox then | ||
row = row | |||
.. '<th style="width:5%; text-align:right; background-color:#eaecf0; white-space:nowrap; padding:0.25em 0.5em; border:1px solid white">' .. row_content[1] .. '</th>\n' | .. '<th style="width:5%; text-align:right; background-color:#eaecf0; white-space:nowrap; padding:0.25em 0.5em; border:1px solid white">' .. row_content[1] .. '</th>\n' | ||
.. '<td style="padding:0em">\n' | .. '<td style="padding:0em">\n' | ||
.. row_content[2] | |||
.. '</td>\n' | .. '</td>\n' | ||
else | |||
row = row | |||
.. '<th style="width:5%; text-align:right; background-color:#eaecf0; white-space:nowrap; padding:0.25em 0.5em; border:1px solid white">' .. row_content[1] .. '</th>\n' | |||
.. '<td style="padding:0em">\n' | |||
.. '<div style="padding:0.25em 0.5em">' .. row_content[2] .. '</div>\n' | |||
.. '</td>\n' | |||
end | |||
end | end | ||
local row = row .. '</tr>\n' | local row = row .. '</tr>\n' | ||
Line 30: | Line 49: | ||
-- Navbox title | -- Navbox title | ||
function p.navbox_title(title, is_collapsible, is_collapsed | -- A title is added if it's provided. | ||
-- Child navboxes used for subcategories don't need a title or collapse options. | |||
function p.navbox_title(title, is_collapsible, is_collapsed) | |||
local is_collapsible = is_collapsible or true -- Not implemented | local is_collapsible = is_collapsible or true -- Not implemented | ||
local is_collapsed = is_collapsed or true -- Not working? | local is_collapsed = is_collapsed or true -- Not working? | ||
local navbox_title = '' | local navbox_title = '' | ||
if | if title == nil then | ||
navbox_title = '<table style="width:100%; border-spacing:0px">\n' | navbox_title = '<table style="width:100%; border-spacing:0px">\n' | ||
else | else | ||
Line 75: | Line 94: | ||
-- Navbox to be #invoke'd | -- Navbox to be #invoke'd | ||
-- Wrapper function for template-based navboxes | |||
function p.navbox(frame) | function p.navbox(frame) | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
-- Preprocess individual entries for, headers, data, and is-row-child into | -- Preprocess individual entries for, headers, data, and is-row-child into |