Module:ResearchTableHead

From the RuneScape Wiki, the wiki for all things RuneScape
Jump to navigation Jump to search
Module documentation
This documentation is transcluded from Module:ResearchTableHead/doc. [edit] [history] [purge]
Module:ResearchTableHead's function main is invoked by Template:ResearchTableHead.
Module:ResearchTableHead requires Module:Arguments.
Module:ResearchTableHead requires Module:Paramtest.
Module:ResearchTableHead requires Module:Yesno.
Function list
L 14 — p.main

This module provides functionality for the research table. See {{ResearchTableHead}} for use.


local p = {}

local getArgs = require("Module:Arguments").getArgs;
local params = require('Module:Paramtest')
local yesno = require('Module:Yesno')
local var = mw.ext.VariablesLua

local alignments = {
    left = true,
    center = true,
    right = true,
};

function p.main(frame)
    local args = getArgs(frame)
    local levels, requirements, notes, chronotes, experience, rewards, digsites,
    lighttable, stickyheader, tableid =
        params.defaults {
            { args.levels or args.lvls, 'yes' },
            { args.requirements or args.reqs, 'no' },
            { args.notes, 'yes' },
            { args.chronotes, 'yes' },
            { args.experience, 'yes' },
            { args.rewards, 'yes' },
            { args.digsites, 'no' },
            { args.lighttable, '' },
            { args['sticky-header'], '' },
            { args.id, '' },
        }

    var.vardefine('levels', levels)
    var.vardefine('requirements', requirements)
    var.vardefine('notes', notes)
    var.vardefine('chronotes', chronotes)
    var.vardefine('experience', experience)
    var.vardefine('rewards', rewards)
    var.vardefine('digsites', digsites)

    local ret = mw.html.create('tr')

    local cols = 1
    local classes = ""
    ret:tag('th'):wikitext('Name'):done()

    if yesno(levels) then
        ret:tag('th'):attr('data-sort-type', 'number'):wikitext('Level'):done()
        cols = cols + 1
        classes = classes .. " align-right-" .. cols
    end

    if yesno(requirements) then
        ret:tag('th'):wikitext('Requirements'):done()
        cols = cols + 1
    end

    if yesno(notes) then
        ret:tag('th'):wikitext('Where to start'):done()
        cols = cols + 1
    end

    if yesno(chronotes) then
        ret:tag('th'):addClass('sell-col'):attr('data-sort-type', 'number'):wikitext('Chronotes cost'):done()
        cols = cols + 1
        classes = classes .. " align-right-" .. cols
    end

    if yesno(experience) then
        ret:tag('th'):attr('data-sort-type', 'number'):wikitext('Experience'):done()
        cols = cols + 1
        classes = classes .. " align-right-" .. cols
    end

    if yesno(rewards) then
        ret:tag('th'):wikitext('Rewards'):done()
        cols = cols + 1
    end

    if yesno(digsites) then
        ret:tag('th'):wikitext('Dig site'):done()
        cols = cols + 1
    end

    ret:done()

    lighttable = yesno(lighttable) and ' lighttable' or ''
    stickyheader = yesno(stickyheader) and ' sticky-header' or ''
    tableid = tableid ~= '' and (' data-tableid="' .. tableid .. '"') or ''

    return '<table class="wikitable store-table sortable' ..
        lighttable ..
        stickyheader ..
        classes ..
        '"' .. tableid .. '>' .. tostring(ret)
end

return p