Module:Road data/browse
MyWikiBiz, Author Your Legacy — Monday December 02, 2024
Jump to navigationJump to searchThis module is used by Template:Infobox road (via Module:Infobox road).
Tracking/maintenance category
local p = {} local format = mw.ustring.format local roadDataModule = require("Module:Road data") local function routeText(route) local shieldText = roadDataModule.shield(route) local linkText = roadDataModule.link(route) local result = mw.html.create("span"):css({display = "inline-block"}) result:wikitext(shieldText .. ' ' .. linkText) return tostring(result) end local function previousRoute(route) local cell = mw.html.create('td'):css({ width = "45%", padding = "0", ["text-align"] = "left" }) if not route.type or route.type == '' then cell:wikitext(" ") else cell:wikitext("← " .. routeText(route)) end return cell end local function nextRoute(route) local cell = mw.html.create('td'):css({ direction = "rtl", width = "45%", padding = "0", ["text-align"] = "right" }) if not route.type or route.type == '' then cell:wikitext(" ") else cell:wikitext("→ " .. routeText(route)) end return cell end function p._browse(route) local country = route.country local state = route.state or route.province local county = route.county local previousData = { country = country, state = state, county = county, type = route.previous_type, route = route.previous_route, dab = route.previous_dab } local nextData = { country = country, state = state, county = county, type = route.next_type, route = route.next_route, dab = route.next_dab } local previousRoute = previousRoute(previousData) local nextRoute = nextRoute(nextData) if previousData.typeerror or nextData.typeerror then route.typeerror = true end local centerRoute = mw.html.create('td'):css({ ["text-align"] = "center", ["white-space"] = "nowrap", width = "10%", padding = "0" }) local route = route.browse_route if route then centerRoute:wikitext(format("'''%s'''", route)) end local browseRow = mw.html.create('tr') browseRow:node(previousRoute):node(centerRoute):node(nextRoute) return tostring(browseRow) end function p.browse(frame) -- Import module function to work with passed arguments local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) args.browse_route = args.route return p._browse(args) end return p