Module:NavboxMobile: Difference between revisions

No edit summary
No edit summary
Line 285: Line 285:
end
end


-- Revised renderListRow Function
local function renderListRow(tbl, path, parentLevel)
local function renderListRow(tbl, path, parentLevel)
     path = path or ""
     path = path or ""
Line 295: Line 294:


         if args[groupKey] then
         if args[groupKey] then
             -- Add custom inline styles based on group levels
             -- Render the group (heading)
            local inlineStyles = ""
 
 
            -- Add a level-specific class to the group row
             local groupRow = addTableRow(tbl)
             local groupRow = addTableRow(tbl)
             local groupCell = groupRow:tag('th')
             local groupCell = groupRow:tag('th')
                 :attr('scope', 'row')
                 :attr('scope', 'row')
                 :addClass('navboxMobile-group-content')
                 :addClass('navboxMobile-group-content')
                 :addClass('navboxMobile-group-level' .. parentLevel) -- Level-specific class
                 :addClass('navboxMobile-group-level' .. parentLevel) -- Correct level
                 :attr('data-level', parentLevel) -- Optional attribute for CSS targeting
                 :attr('data-level', parentLevel) -- Optional attribute for CSS targeting
                :cssText(inlineStyles)
                 :wikitext(processItem(args[groupKey]))
                 :wikitext(processItem(args[groupKey]))


            -- Render the list (content)
             if args[listKey] then
             if args[listKey] then
                 local listRow = addTableRow(tbl)
                 local listRow = addTableRow(tbl)
                 local listCell = listRow:tag('td')
                 local listCell = listRow:tag('td')
                     :attr('colspan', 2)
                     :attr('colspan', 2)
                     :addClass('navboxMobile-list-content')
                     :addClass('navboxMobile-list-content') -- Base content class
                     :addClass('navboxMobile-list-level' .. parentLevel) -- Level-specific class for lists
                     :addClass('navboxMobile-list-level' .. parentLevel) -- Correct level
                     :addClass((i % 2 == 1) and 'navboxMobile-odd' or 'navboxMobile-even')
                     :addClass((i % 2 == 1) and 'navboxMobile-odd' or 'navboxMobile-even') -- Odd/even class
                    :cssText(args.liststyle)
                    :cssText(args[listKey .. 'style'])


                 if args[listKey] == 'child' then
                 if args[listKey] == 'child' then
                    -- Recursively render child lists
                     local newPath = (path ~= "" and path .. "_" or "") .. i
                     local newPath = (path ~= "" and path .. "_" or "") .. i
                     renderListRow(tbl, tostring(newPath), parentLevel + 1)
                     renderListRow(tbl, tostring(newPath), parentLevel + 1)
                 else
                 else
                     listCell
                    -- Render flat lists
                        :addClass('hlist')
                     listCell:wikitext(processItem(args[listKey], args.nowrapitems))
                        :wikitext(processItem(args[listKey], args.nowrapitems))
                 end
                 end
             end
             end
Line 331: Line 324:
     end
     end
end
end