Difference between revisions of "Module:OInfobox-Building"

Jump to navigation Jump to search
m
no edit summary
m
m
Line 43: Line 43:
         return box
         return box
     end
     end
   
 
     if header then
     if header then
         box:tag('div')
         box:tag('div')
Line 50: Line 50:
             :done()
             :done()
     end
     end
   
 
     local function createDataRow(label, value, defaultValue)
     local function createDataRow(label, value, defaultValue)
    if not value and not defaultValue then
        if not value and not defaultValue then
         return nil
            return nil
        end
 
        local dataRow = mw.html.create('div')
        dataRow:addClass('infobox-data-section')
 
        if label and header ~= 'Construction Requirements' then
            dataRow:tag('span')
                :addClass('infobox-label')
                :wikitext(label)
                :done()
            :tag('span')
                :addClass('infobox-data')
                :wikitext(value or defaultValue)
        else
            dataRow:tag('span')
                :addClass('infobox-data')
                :wikitext(value or defaultValue)
        end
 
         return dataRow
     end
     end
      
 
    local dataRow = mw.html.create('div')
     if columnCount and columnCount > 1 then
    dataRow:addClass('infobox-data-section')
        local row = box:tag('div'):addClass('infobox-row')
   
        for i, item in ipairs(data) do
    if label then
            local label = (header == 'Construction Requirements') and nil or item.label
        dataRow:tag('span')
            local dataDiv = createDataRow(label, item.label .. (item.value and ' ' .. item.value or ''))
            :addClass('infobox-label')
            if dataDiv then
            :wikitext(label)
                row:tag('div'):addClass('infobox-data-item'):node(dataDiv):done()
            :done()
                if i % columnCount == 0 and i < #data then
        :tag('span')
                    row = box:tag('div'):addClass('infobox-row'):done()
            :addClass('infobox-data')
                end
             :wikitext(value or defaultValue)
             end
        end
        if row.parent == box then
            row:done()
        end
     else
     else
         dataRow:tag('span')
         for _, item in ipairs(data) do
            :addClass('infobox-data')
             local label = (header == 'Construction Requirements') and nil or item.label
             :wikitext(value or defaultValue)
            local dataRow = createDataRow(label, item.label .. (item.value and ' ' .. item.value or ''))
    end
            if dataRow then
   
                box:node(dataRow)
    return dataRow
            end
end
   
    local rowClass = 'infobox-row'
    if columnCount then
        rowClass = rowClass .. ' data-rows-' .. columnCount
    end
   
    local rowContainer = mw.html.create('div')
    rowContainer:addClass(rowClass)
   
    for _, item in ipairs(data) do
        local dataRow = createDataRow(item.label, item.value, item.defaultValue)
        if dataRow then
            rowContainer:node(dataRow)
         end
         end
     end
     end
   
 
    box:node(rowContainer)
     return box
     return box
end
end
606

edits

Navigation menu