Module:NavboxMobile: Difference between revisions

No edit summary
No edit summary
Line 306: Line 306:
                 :wikitext(addNewline(args.below))
                 :wikitext(addNewline(args.below))
end
end




local function renderListRow(tbl, listnum)
local function renderListRow(tbl, listnum)
    -- Determine if this group is a subgroup based on the border parameter
    local isSubgroup = border == cfg.keyword.border_subgroup
     -- Add a row for the group (if it exists)
     -- Add a row for the group (if it exists)
     if args['group' .. listnum] then
     if args['group' .. listnum] then
         local groupRow = addTableRow(tbl)
         local groupRow = addTableRow(tbl)
         local groupCell = groupRow:tag('th')
         local groupCell = groupRow:tag('th')
         groupCell
         groupCell
             :attr('scope', 'row')
             :attr('scope', 'row')
             :addClass('navboxMobile-group-content')
             :addClass('navboxMobile-group-content') -- Existing Class
             :addClass('navboxMobile-group-level' .. (border == 'subgroup' and '3' or '2'))
             :addClass(args.groupclass)
             :css('padding', '0.25em 1em') -- Ensure consistent padding
            :addClass(isSubgroup and 'navboxMobile-subgroup' or 'navboxMobile-group') -- Use existing classes
             :css('border-left', '2px solid #fdfdfd') -- Similar border as desktop
            :cssText(args.basestyle)
             :cssText(args.groupstyle)
             :cssText(args['group' .. listnum .. 'style'])
             :wikitext(processItem(args['group' .. listnum]))
             :wikitext(processItem(args['group' .. listnum]))
     end
     end
Line 325: Line 333:
     local listRow = addTableRow(tbl)
     local listRow = addTableRow(tbl)
     local listCell = listRow:tag('td')
     local listCell = listRow:tag('td')
        :attr('colspan', 2)
        :addClass('navboxMobile-list-content')


     -- Determine if the current list number is odd or even
     -- Determine even or odd for alternating row colors
     local isOdd = (listnum % 2) == 1
     local evenOddClass = (listnum % 2 == 0) and 'navboxMobile-even' or 'navboxMobile-odd'
    local evenOddClass = isOdd and 'navboxMobile-odd' or 'navboxMobile-even'
    listCell:addClass(evenOddClass)


     listCell
     listCell
         :attr('colspan', 2)
         :addClass('hlist') -- Ensure horizontal list styling
        :addClass('navboxMobile-list-content hlist ' .. evenOddClass)
         :css('padding', args.listpadding or '0 0.25em') -- Uniform padding
         :css('padding', '0 0.25em')
         :css('width', '100%')
         :css('width', '100%')
         :cssText(args.liststyle)
         :cssText(args.liststyle)
         :cssText(args['list' .. listnum .. 'style'])
         :cssText(args['list' .. listnum .. 'style'])


     -- Handle nested lists or flat lists
     -- Handle nested lists (childX_groupY, childX_listY)
     if args['list' .. listnum] == 'child' then
     if args['list' .. listnum] == 'child' then
        -- Render nested table for child lists within 'navboxMobile-subgroup'
         local nestedTbl = mw.html.create('table')
         local nestedTbl = mw.html.create('table')
             :addClass('navboxMobile-subgroup')
             :addClass('navboxMobile-subgroup') -- Existing Class
             :css('width', '100%')
             :css('width', '100%')
             :css('border-spacing', '0')
             :css('border-spacing', '0')
             :css('margin-top', '0.25em') -- Add top margin for spacing between subgroups
             :css('padding', '0') -- Remove padding
             :css('margin-bottom', '0.25em') -- Add bottom margin for spacing
             :css('margin', '0') -- Remove margin if any


         for i = 1, 10 do
         for i = 1, 10 do -- Assume up to 10 nested groups/lists
             local nestedGroup = args['child' .. listnum .. '_group' .. i]
             local nestedGroup = args['child' .. listnum .. '_group' .. i]
             local nestedList = args['child' .. listnum .. '_list' .. i]
             local nestedList = args['child' .. listnum .. '_list' .. i]
Line 361: Line 369:
                 nestedGroupCell
                 nestedGroupCell
                     :attr('scope', 'row')
                     :attr('scope', 'row')
                     :addClass('navboxMobile-group-content navboxMobile-group-level3')
                     :addClass('navboxMobile-group-content') -- Existing Class
                    :addClass(args.groupclass)
                    :addClass('navboxMobile-subgroup') -- Existing Class for Subgroup
                     :cssText(args.basestyle)
                     :cssText(args.basestyle)
                     :cssText(args['child' .. listnum .. '_group' .. i .. 'style'])
                     :cssText(args['child' .. listnum .. '_group' .. i .. 'style'])
Line 372: Line 382:
                 nestedListCell
                 nestedListCell
                     :attr('colspan', 2)
                     :attr('colspan', 2)
                     :addClass('navboxMobile-list-content hlist ' .. ((i % 2 == 1) and 'navboxMobile-odd' or 'navboxMobile-even'))
                     :addClass('navboxMobile-list-content')
                    :addClass('hlist') -- Ensure horizontal list styling
                     :cssText(args['child' .. listnum .. '_list' .. i .. 'style'])
                     :cssText(args['child' .. listnum .. '_list' .. i .. 'style'])
                     :wikitext(processItem(nestedList))
                     :wikitext(processItem(nestedList))
Line 381: Line 392:
         listCell:node(nestedTbl)
         listCell:node(nestedTbl)
     else
     else
         -- Render a flat list
         -- Render a flat list if no nested lists exist
         listCell
         listCell
             :addClass('hlist')
             :addClass('hlist')