(Equipment table list, columns for ultracapacitors) |
m (Pass through a caption to the table) |
||
| Line 50: | Line 50: | ||
}) | }) | ||
return dv.displayTable(data, p.view, columns) | local options = { | ||
caption = f.args['caption'] | |||
} | |||
return dv.displayTable(data, p.view, columns, options) | |||
end | end | ||
return p | return p | ||
Revision as of 01:24, 14 March 2023
Documentation for this module may be created at Module:Equipment/doc
local p = {}
local d = require('Module:Data')
local dv = require('Module:Data/View')
p.view = {}
p.view['Name'] = dv.title{'name'}
p.view['Price'] = dv.number{'price', unit='E$'}
p.view['Mass'] = dv.number{'mass', unit='kg'}
-- Ultracapacitors
p.view['Energy Capacity'] = dv.number{'energyCapacity', unit='MJ'}
p.view['Peak Power'] = dv.number{'peakPower', unit='GW'}
for k,v in pairs(p.view) do
v.heading = v.heading or k
end
p.defaultColumns = {
'Name', 'Price', 'Mass'
}
p.positionalArgs = function(f)
local posArgs = {}
for i,posArg in ipairs(f.args) do
-- positional arguments don't get trimmed
table.insert(posArgs, mw.text.trim(posArg))
end
return posArgs
end
p.list = function(f)
local posArgs = p.positionalArgs (f)
local slot = table.remove(posArgs, 1)
local columns = posArgs
if table.getn(columns) == 0 then
columns = p.defaultColumns
end
local data = mw.loadData('Module:Equipment/Data')
data = data[slot]
data = d.sort(data, {
d.on(d.path{'price'}, d.asc),
d.on(d.path{'name'}, d.asc),
})
local options = {
caption = f.args['caption']
}
return dv.displayTable(data, p.view, columns, options)
end
return p