Module:Metrics dashboard

Module documentation

Usage edit

{{#invoke:Metrics dashboard|function_name}} Provides functionality to Template:Metrics dashboard.

Input edit

See Template:Metrics dashboard/doc#Usage

Output edit

A formatted string representing the metrics dashboard with the provided key figures, labels, footer, and last-updated timestamp.


local p = {}

local function listItem(value, label)
    return string.format('* <span class="md-value">%s</span><span class="md-label">%s</span>', value, label)
end

function p.list(frame)
    local output = ''
    local i = 1
    local args = frame:getParent().args

    while args['figure' .. i .. '-value'] and args['figure' .. i .. '-label'] do
        local value = args['figure' .. i .. '-value']
        local label = args['figure' .. i .. '-label']

        output = output .. listItem(value, label) .. '\n'

        i = i + 1
    end

output = output .. '<div class="metrics-dashboard-footer" style="font-size: smaller; padding-top: 2em; padding-bottom: 1.5em;">'
if args['footer'] then
    output = output .. '<div class="footer-content">' .. args['footer'] .. '</div>'
end
if args['last-updated'] then
    if args['bot'] then
        local user_link = frame:preprocess('[[User:' .. args['bot'] .. '|' .. args['bot'] .. ']]')
        output = output .. '<div class="last-updated-content"> Last updated by 🤖 ' .. user_link .. ' on ' .. args['last-updated'] .. '</div>'
    else
        output = output .. '<div class="last-updated-content"> Last updated: ' .. args['last-updated'] .. '</div>'
    end
end
output = output .. '</div>'

    return output
end

return p