Module documentation

local m = {}
m.styles = {}
m.sections = {}
m.fields = {}
m.categories = {}
m.templates = {}
m.roles = {}

m.roles.creator = true

m.sections.above = true
m.sections.nav = true
m.sections.head = true
m.sections.main = true
m.sections.participants = true
m.sections.cta = true
m.sections.below = true

m.styles.box = {}
m.styles.box.outer = "float:right; margin: 0 0 1em 4%; min-width: 22em; width: 28%;"
m.styles.box.inner = "background-color: #eeeeee; color: #000000; border-left: 1px solid #ddd; border-top: 1px solid #ddd; border-right: 1px solid #ddd; border-bottom: 3px solid #D0D0D0; border-radius: 1px; padding: 12px 20px 20px 20px;"

m.styles.section = {}
m.styles.section.above = ""
m.styles.section.nav = "background-color: #32afaf; padding: .25em 0 0 1em; font-size: 1.3em"
m.styles.section.head = "margin-bottom:1em;"
m.styles.section.main = "margin-bottom:1em;"
m.styles.section.participants = "background-color:white; border: 1px solid #DDD; border-radius: 1px; margin-bottom:.5em; padding:.75em;"
m.styles.section.cta = "clear:both;"
m.styles.section.below = ""

m.styles.field = {}
m.styles.field.h1 = "display:inline; word-wrap:break-word;"
m.styles.field.h2 = "margin-bottom:0.5em; word-wrap:break-word;"
m.styles.field.p = ""
m.styles.field.img = ""

--
-- fields
--

-- above box
m.fields.status = {}
m.fields.status.isRequired = true
m.fields.status.vtype = "text"
m.fields.status.vtype2 = "body"
m.fields.status.style = ""
m.fields.status.style2 = "font-style:italic; padding-right:.5em; color: #888888"
m.fields.status.style3 = "font-weight:bold"
m.fields.status.section = "above"
m.fields.status.arg = "status"
m.fields.status.key = "status"
m.fields.status.default = "status-default"
m.fields.status.rank = 1

-- nav section
m.fields.nav_text = {}
m.fields.nav_text.isRequired = true
m.fields.nav_text.vtype = "text"
m.fields.nav_text.vtype2 = "link"
m.fields.nav_text.style = m.styles.field.h1
m.fields.nav_text.style2 = "color:#FFFFFF"
m.fields.nav_text.style3 = ""
m.fields.nav_text.section = "nav"
m.fields.nav_text.arg = "nav_text"
m.fields.nav_text.default = "Grants:TPS"
m.fields.nav_text.key = "portal"
m.fields.nav_text.rank = 1

-- head section
m.fields.event = {}
m.fields.event.isRequired = true
m.fields.event.vtype = "text"
m.fields.event.vtype2 = "title"
m.fields.event.style = m.styles.field.h1
m.fields.event.style2 = ""
m.fields.event.style3 = "font-size: 1.3em;"
m.fields.event.section = "head"
m.fields.event.arg = "event"
m.fields.event.key = "event"
m.fields.event.default = "event-default"
m.fields.event.rank = 1

-- main section
m.fields.image = {}
m.fields.image.isRequired = false
m.fields.image.vtype = "image"
m.fields.image.vtype2 = "thumb"
m.fields.image.style = ""
m.fields.image.style2 = ""
m.fields.image.style3 = "float:right;"
m.fields.image.section = "main"
m.fields.image.arg = "image"
m.fields.image.key = ""
m.fields.image.width = "50px"
m.fields.image.rank = 1

m.fields.summary = {}
m.fields.summary.isRequired = true
m.fields.summary.vtype = "text"
m.fields.summary.vtype2 = "body"
m.fields.summary.style = m.styles.field.h2
m.fields.summary.style2 = "color: #888888; font-style: italic;"
m.fields.summary.style3 = "display:block;"
m.fields.summary.section = "main"
m.fields.summary.arg = "summary"
m.fields.summary.key = "summary"
m.fields.summary.default = "summary-default"
m.fields.summary.rank = 2

m.fields.location = {}
m.fields.location.isRequired = true
m.fields.location.vtype = "text"
m.fields.location.vtype2 = "body"
m.fields.location.style = m.styles.field.h2
m.fields.location.style2 = "color: #888888; font-style: italic;"
m.fields.location.style3 = "display:block;"
m.fields.location.section = "main"
m.fields.location.arg = "location"
m.fields.location.key = "event-location"
m.fields.location.default = "event-location-default"
m.fields.location.rank = 3

m.fields.website = {}
m.fields.website.isRequired = true
m.fields.website.vtype = "text"
m.fields.website.vtype2 = "body"
m.fields.website.style = m.styles.field.h2
m.fields.website.style2 = "color: #888888; font-style: italic;"
m.fields.website.style3 = "display:block;"
m.fields.website.section = "main"
m.fields.website.arg = "website"
m.fields.website.key = "event-website"
m.fields.website.default = "event-website-default"
m.fields.website.rank = 4

m.fields.dates = {}
m.fields.dates.isRequired = true
m.fields.dates.vtype = "text"
m.fields.dates.vtype2 = "body"
m.fields.dates.style = m.styles.field.h2
m.fields.dates.style2 = "color: #888888; font-style: italic;"
m.fields.dates.style3 = "display:block;"
m.fields.dates.section = "main"
m.fields.dates.arg = "dates"
m.fields.dates.key = "event-dates"
m.fields.dates.default = "event-dates-default"
m.fields.dates.rank = 5

m.fields.amount = {}
m.fields.amount.isRequired = true
m.fields.amount.vtype = "text"
m.fields.amount.vtype2 = "body"
m.fields.amount.style = m.styles.field.h2
m.fields.amount.style2 = "color: #888888; font-style: italic;"
m.fields.amount.style3 = "display:block;"
m.fields.amount.section = "main"
m.fields.amount.arg = "amount"
m.fields.amount.key = "amount"
m.fields.amount.default = "amount-default"
m.fields.amount.rank = 6

m.fields.country = {}
m.fields.country.isRequired = true
m.fields.country.vtype = "text"
m.fields.country.vtype2 = "body"
m.fields.country.style = m.styles.field.h2
m.fields.country.style2 = "color: #888888; font-style: italic;"
m.fields.country.style3 = "display:block;"
m.fields.country.section = "main"
m.fields.country.arg = "country"
m.fields.country.key = "country"
m.fields.country.default = "country-default"
m.fields.country.rank = 7

--not actually displayed; just used to append the proper fy to the template
--m.fields.fiscal_year = {}
--m.fields.fiscal_year.isRequired = false
--m.fields.fiscal_year.vtype = "text"
--m.fields.fiscal_year.vtype2 = "body"
--m.fields.fiscal_year.style = ""
--m.fields.fiscal_year.style2 = "color: #888888; font-style: italic;"
--m.fields.fiscal_year.style3 = "display:block;"
--m.fields.fiscal_year.section = "main"
--m.fields.fiscal_year.arg = "country"
--m.fields.fiscal_year.key = "country"
--m.fields.fiscal_year.default = "country-default"
--m.fields.fiscal_year.rank = 8

--sub-section
m.fields.creator = {}
m.fields.creator.isRequired = true
m.fields.creator.vtype = "participant"
m.fields.creator.style = m.styles.field.h2
m.fields.creator.style2 = ""
m.fields.creator.style3 = "display:block;"
m.fields.creator.section = "participants"
m.fields.creator.arg = "creator"
m.fields.creator.key = "creator"
m.fields.creator.default = "creator-default"
m.fields.creator.rank = 1

-- call to action section (buttons, etc)
m.fields.talk = {}
m.fields.talk.isRequired = true
m.fields.talk.vtype = "text"
m.fields.talk.vtype2 = "link"
m.fields.talk.style = "display: inline; float:left; margin-right: 1em; margin-top: .5em"
m.fields.talk.style2 = ""
m.fields.talk.style3 = ""
m.fields.talk.section = "cta"
m.fields.talk.arg = "talk"
m.fields.talk.key = "talk"
m.fields.talk.rank = 1

m.fields.endorse = {}
m.fields.endorse.isRequired = true
m.fields.endorse.vtype = "image"
m.fields.endorse.vtype2 = "ui_button"
m.fields.endorse.style = "display:inline; float:right; margin-right: 1em;"
m.fields.endorse.style2 = ""
m.fields.endorse.style3 = ""
m.fields.endorse.class = "wp-endorse-button mw-ui-button mw-ui-progressive"
m.fields.endorse.section = "cta"
m.fields.endorse.arg = "endorse"
m.fields.endorse.key = "endorse"
m.fields.endorse.rank = 2

-- below box
m.fields.timestamp = {}
m.fields.timestamp.isRequired = false
m.fields.timestamp.vtype = "text"
m.fields.timestamp.vtype2 = "body"
m.fields.timestamp.style = "display:inline; font-style: italic; font-size: .75em"
m.fields.timestamp.style2 = "margin-right: .25em"
m.fields.timestamp.style3 = ""
m.fields.timestamp.section = "below"
m.fields.timestamp.arg = "timestamp"
m.fields.timestamp.key = "timestamp"
m.fields.timestamp.rank = 1

--
-- categories
--
m.categories.default = "Category:Wikimedia_Participation_Support_requests"
m.categories.base = "Category:Wikimedia_Participation_Support_requests"

m.categories.status = {}
m.categories.status.open = "_open"
m.categories.status.funded = "_funded"
m.categories.status.not_funded = "_not_funded"
m.categories.status.withdrawn = "_withdrawn"
m.categories.status.cancelled = "_cancelled"

--
-- navigation templates
--
-- m.templates.args = {}
-- m.templates.args.date = "2014-15"
-- m.templates.args.status = "2014-15"

 m.templates.passArg = true
 m.templates.status = {} -- add nav template to top, based on proposal status
 m.templates.status.status = "Participation_Support_request_probox"
-- m.templates.status.open = "Participation_Support_request/Open"
-- m.templates.status.funded = "Participation_Support_request/Funded"
-- m.templates.status.not_funded = "Participation_Support_request/Not_funded"
-- m.templates.status.withdrawn = "Participation_Support_request/Withdrawn"
-- m.templates.status.cancelled = "Participation_Support_request/Cancelled"
--  m.templates.status.draft = "Participation_Support_request/Draft"
-- m.templates.status.open = "Participation_Support_request/Open"
-- m.templates.status.funded = "Participation_Support_request/Funded"
-- m.templates.status.not_funded = "Participation_Support_request/Not_funded"
-- m.templates.status.withdrawn = "Participation_Support_request/Withdrawn"
-- m.templates.status.args = {}
-- m.templates.status.args.status = ""
-- m.templates.status.args.fiscal_year = ""

return m