Wir laden dich herzlich auf den Star Citizen Wiki Discord Server ein! Du kannst uns auch auf unserem neuen YouTube-Chanel finden!
Modul:Contract
From Star Citizen Wiki
Views
Actions
Namespaces
Variants
Tools
Modulabhängigkeiten
Dieses Modul benötigt Modul:Common
Dieses Modul benötigt Modul:Infobox
Dieses Modul benötigt Modul:Localized
Dieses Modul benötigt Modul:Arguments
Dieses Modul benötigt Modul:TNT
Dieses Modul wird lokalisiert durch I18n/Module:Contract
Modulinfo
Dieses Modul setzt die Vorlage Mission um.
local translation = mw.getCurrentFrame():callParserFunction{name='#translation', args="1"}
local Contract = {}
local metatable = {}
local methodtable = {}
metatable.__index = methodtable
--- Needed Extensions
local infobox = require( 'Module:Infobox' )
local common = require( 'Module:Common' )
local localized = require( 'Module:Localized' )
local TNT = require( 'Module:TNT' )
--- Save properties to the smw store
function methodtable.setSemanticProperties( self )
self.smwData[ 'Name' ] = self.args[ 'Name' ] or self.args[ 'Name' ] or nil;
self.smwData[ 'Auftraggeber' ] = self.args[ 'Auftraggeber' ] or self.args[ 'Contractor' ] or nil;
self.smwData[ 'Auftragstyp' ] = self.args[ 'Auftragstyp' ] or self.args[ 'Type' ] or nil;
self.smwData[ 'Auftragsklasse' ] = self.args[ 'Auftragsklasse' ] or self.args[ 'Class' ] or nil;
self.smwData[ 'Verfügbarkeit' ] = self.args[ 'Verfügbarkeit' ] or self.args[ 'Availability' ] or nil;
self.smwData[ 'Bezahlung' ] = self.args[ 'Bezahlung' ] or self.args[ 'Payment' ] or nil;
if not mw.title.getCurrentTitle().isSubpage then
local result = mw.smw.set( self.smwData )
common.checkSmwResult( result )
end
end
--- Adds the main category
function methodtable.setMainCategory( self )
table.insert( self.categories, '[[Category:Auftrag' .. translation .. ']]' )
end
--- Extracts args and sets up the module
function methodtable.init( self, frame )
self.args = require( 'Module:Arguments' ).getArgs( frame )
self:setSemanticProperties()
if self.smwData[ 'Auftragsgeber' ] ~= nil then
table.insert( self.categories, '[[Category:' .. self.smwData[ 'Auftragsgeber' ] .. translation .. ']]' )
end
self:setMainCategory()
end
function Contract.main( frame )
local instance = Contract:new()
instance:init( frame )
local box = infobox.create( {
bodyClass = 'floatright',
} )
box:addImage( common.getImage( {
instance.args[ 'image' ]
} ) )
box:addTitle( instance.smwData[ 'Name' ] or localized.getMainTitle() )
box:addRow( TNT.format( 'I18n/Module:Contract', 'lbl_from' ), instance.smwData[ 'Auftraggeber' ] or '-', nil, 'col2' )
:addRow( TNT.format( 'I18n/Module:Contract', 'lbl_availability' ), instance.smwData[ 'Verfügbarkeit' ] or '-', nil, 'col2' )
:addRow( TNT.format( 'I18n/Module:Contract', 'lbl_type' ), instance.smwData[ 'Auftragstyp' ] or '-', nil, 'col2' )
:addRow( TNT.format( 'I18n/Module:Contract', 'lbl_class' ), instance.smwData[ 'Auftragsklasse' ] or '-', nil, 'col2' )
:addRow( TNT.format( 'I18n/Module:Contract', 'lbl_payment' ), instance.smwData[ 'Bezahlung' ] or '-', nil, 'col2' )
return tostring( box ) .. tostring( table.concat( instance.categories, '' ) )
end
--- New Instance
function Contract.new( self )
local instance = {
args = {},
smwData = {
[ 'Name' ] = nil,
[ 'Auftraggeber' ] = nil,
[ 'Auftragstyp' ] = nil,
[ 'Auftragsklasse' ] = nil,
[ 'Availability' ] = nil,
[ 'Bezahlung' ] = nil,
},
categories = {},
}
setmetatable( instance, metatable )
return instance
end
return Contract