Homepage
Games
News
News βΎ
All
Transfers
Drama
Business
Sponsors
Mergers
Investors
Hires
Companies
More
People
Tournaments
Brands
Brands βΎ
Companies
Organizations
Sponsors
Other
Locations
Search
Editing
Module:Organization
From TwogPedia
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local getArgs = require('Module:Arguments').getArgs local stringifyDate = require('Module:Functions').stringifyDate local Flags = require('Module:Flags') local cargo = mw.ext.cargo local Organization = {} local VariablesLua = mw.ext.VariablesLua function Organization.main(frame) local args = getArgs(frame) if VariablesLua.varexists('Employees') == false or VariablesLua.var('Employees') == '' then return '' end local tables = mw.text.split(VariablesLua.var( 'Employees' ), '&&&') -- Get all unique properties from Person templates properties = {} for i = 1, #tables do local values = mw.text.jsonDecode(tables[i]) for key2, value2 in pairs ( values ) do if string.find(mw.text.jsonEncode(properties), '"' .. key2 .. '"') then else table.insert(properties, key2) end end end properties = mw.text.jsonEncode(properties) local tableContainer = mw.html.create('table') tableContainer:addClass('striped-table') if args.title then local title = mw.html.create('tr') :addClass('headerRow'):node(mw.html.create('th'):addClass('table-title'):attr('colspan', 10):wikitext(args.title)) tableContainer:node(title) end local titleRow = mw.html.create('tr') titleRow:addClass('headerRow') local nameCell = mw.html.create('th') nameCell:wikitext('Name') local positionCell = mw.html.create('th') positionCell:addClass('position') positionCell:wikitext('Position') local joindateCell = mw.html.create('th') joindateCell:wikitext('Join Date') if ( string.find(properties, '"id"') ) then local idCell = mw.html.create('th') idCell:wikitext('ID') titleRow:node(idCell) end titleRow:node(nameCell):node(positionCell):node(joindateCell) -- If status is not active, then see what other th tags need to be added if ( args.status ~= 'active' ) then if ( string.find(properties, '"leavedate"') ) then local leaveDate = mw.html.create('th') leaveDate:wikitext('Leave Date') titleRow:node(leaveDate) end if ( string.find(properties, '"inactivedate"') ) then local inactiveDate = mw.html.create('th') inactiveDate:wikitext('Inactive Since') titleRow:node(inactiveDate) end if ( string.find(properties, '"newcompany"') ) then local newCompany = mw.html.create('th') newCompany:wikitext('New company') titleRow:node(newCompany) end end titleRow:node(titleHeader) tableContainer:node(titleRow) -- Go through all the Person template instances for i = 1, #tables do local values = mw.text.jsonDecode(tables[i]) local personRow = mw.html.create('tr') personRow:addClass('bodyRow') -- if ( string.find(properties, '"id"') ) then -- local idCell = mw.html.create('th') -- idCell:wikitext('ID') -- titleRow:node(idCell) -- end -- Check if person is added for the name and nationality local tables = 'People' local fields = '_pageName, nationality, name, romanized' local pageName = values.id or '' local cargoArgs = { where = '_pageName="People/' .. pageName .. '"' } local results = cargo.query(tables, fields, cargoArgs) if #results > 0 then values.name = results[1].romanized or results[1].name or values.name values.flag = results[1].nationality or values.flag end if values.id then local idFlagDiv = mw.html.create('div'):addClass('flag') local id = mw.html.create('td') :addClass('linkID') :node(idFlagDiv) if ( values.flag ) then local idFlag = Flags.icon(values.flag, 'Management') idFlagDiv:wikitext(idFlag) end local link = mw.title.new('People' .. values.id) and 'People/' .. values.id or 'People/' .. values.id .. '|' .. values.id idFlagDiv:wikitext('<span>[[' .. link .. '|' .. values.id .. ']]</span>') personRow:node(id) end if values.name then local flagDiv = mw.html.create('div'):addClass('flag') local name = mw.html.create('td') :addClass('playerName') :node(flagDiv) if values.flag and values.id == nil then local flag = Flags.icon(values.flag, 'Management') flagDiv:wikitext(flag) end flagDiv:wikitext(values.name) if string.find(properties, '"id"') == nil and values.id then name:attr('colspan', 2) end personRow:node(name) end local position = mw.html.create('td') :addClass('tc') :wikitext(values.position) local joindate = mw.html.create('td') joindate:wikitext(stringifyDate(values.joindate)) personRow:node(position):node(joindate) -- If not active squad, then go add additional columns to table if ( args.status ~= 'active' ) then if ( string.find(properties, '"leavedate"') ) then local leaveText = mw.html.create('td') :addClass('tc') :wikitext(values.leavedate or '-') personRow:node(leaveText) end if ( string.find(properties, '"inactivedate"') ) then local inactiveDate = mw.html.create('td') :addClass('tc') :wikitext(stringifyDate(values.inactivedate) or '-') personRow:node(inactiveDate) end if ( string.find(properties, '"newcompany"')) then local newComapny = mw.html.create('td') if values.newteam then newComapny:wikitext('[[' .. values.newteam .. ']]') end personRow:node(newComapny) end end titleRow:node(personRow) end VariablesLua.vardefine( 'Employees', '') return tableContainer end return Organization
Summary:
Please note that all contributions to TwogPedia may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
TwogPedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Preview page with this template
Template used on this page:
Module:Organization/doc
(
edit
)
No categories
Edit