Модуль:Tools

Версия от 11:16, 25 декабря 2021; JustPlayer (обсуждение | вклад) (JustPlayer изменил модель содержимого страницы Модуль:Tools с «JavaScript» на «Scribunto»)

local p = {}

function p.getTodoTable(frame)
	local tableNode = mw.html.create('table')
    tableNode
        :addClass('pc-block service-table')
        :cssText('width: 100%; display: table; margin: 0 auto; text-align: center;')
        :newline()
    
    tableNode
        :tag('tr')
            :css('white-space', 'nowrap')
            :tag('th')
                :wikitext('Задача')
                :done()
            :tag('th')
                :wikitext('Описание')
                :done()
            :tag('th')
                :wikitext('Ответственный')
                :done()
            :tag('th')
                :wikitext('Статус')
                :done()
            :done()
            
    local list     = mw.loadData('Module:Tools/todo')
    local statuses = mw.loadData('Module:Tools/todo/statuses')
    local member   = ""
    local status   = ""
    for k, v in ipairs(list) do
    	if v[3] == "" or v[3] == nil then
    		member = "Все желающие"
    	else
    		member = mw.ustring.format('[[Участник:%s|%s]]', v[3], v[3])
    	end
    	
    	if v[4] == 1 then
    		status = mw.ustring.format('{{Цвет|обы|%s}}', statuses[v[4]])
    	elseif v[4] == 2 then
    		status = mw.ustring.format('{{Цвет|жел|%s}}', statuses[v[4]])
    	elseif v[4] == 3 then
    		status = mw.ustring.format('{{Цвет|зел|%s}}', statuses[v[4]])
    	end
    	
        local rowNode = mw.html.create('tr')
        rowNode
            :tag('td')
            	:css('color', '#25a6f2')
                :wikitext(mw.ustring.format('%s', v[1]))
                :done()
            :tag('td')
            	:css('text-align', 'left')
                :wikitext(mw.ustring.format('%s', v[2]))
                :done()
            :tag('td')
                :wikitext(mw.ustring.format('%s', member))
                :done()
            :tag('td')
                :wikitext(mw.ustring.format('%s', status))
                :done()
            :done()
        tableNode:node(rowNode):newline()
    end
    
    return frame:preprocess(tostring(tableNode))
end

return p