Modul:Formular/Work

Aus FürthWiki
local p = {}

local wob = require("Modul:Wörterbuch")

p.form_attr = {
	["Adressart"] = {
		field_args = "Adressart|input type=combobox|property=Adressart|size=30"},
	["AdresseBis"] = {
		field_args = "AdresseBis|input type=date|size=15"},
	["AdresseVon"] = {
		field_args = "AdresseVon|input type=date|size=15"},
	["Bild"] = {
		info = "Name der Bilddatei im Format <code>Max Mustermann.jpg</code>",
		field_args = "Bild|size=24|uploadable"},
	["Ehemals"] = {
		info = { "Haken setzen, wenn Objekt heute nicht mehr besteht",
			["Einrichtung"] = "Haken setzen, wenn Einrichtung geschlossen"},
		field_args = "Ehemals|input type=checkbox"},
	["Email"] = {
		-- info = "Emailadresse dieses Objektes",
		field_args = "Email|input type=text"},
	["Gründungsdatum"] = {
		-- info = "Link zum Artikel des Gründungsdatums",
		field_args = "Gründungsdatum|input type=date"},
	["Gründungsort"] = {
		-- info = "An welchem Ort wurde die Einrichtung gegründet?",
		field_args = "Gründungsort|size=24|input type=text"},
	["Hausnummer"] = {
		field_args = "Hausnummer|input type=text|size=3"},
	["Kommentar"] = {
		field_args = "Kommentar|input type=text|size=30"},
	["Schließungsdatum"] = {
		-- info = "Einrichtung wurde bereits geschlossen",
		field_args = "Schließungsdatum|input type=date"},
	["Schließungsgrund"] = {
		info = { -- "???"
			["Einrichtung"] = "Warum hat diese Einrichtung aufgegeben?"},
		field_args = "Schließungsgrund|size=24|input type=text"},
	["Straße"] = {
		info = {
			["Adresse"] = "Nur eintragen, wenn in Fürth!"},
		field_args = "input type=text with autocomplete|size=30"},
	["Telefon"] = {
		-- info = "Telefonnummer, unter der dieses Objekt erreichbar ist",
		field_args = "Telefon|input type=text"},
	["Webseite"] = {
		-- info = "Internetadresse dieses Objektes",
		field_args = "Webseite|input type=text"},
}

function p.formularAdresse(frame)
	return p.attr_table{
		frame = frame,
		klasse = "Adresse",
		attr_list = {
			"Adressart", "AdresseVon", "AdresseBis",
			"Straße", "Hausnummer",
			"Kommentar"},
		format = "horizontal"
	}
end

function p.attr_table(args)
	local t = "<table class=\"formtable\">\n"
	if args.format == "horizontal" then
		t = t .. "<tr>\n"
	end
	for _, a in ipairs(args.attr_list) do
		local attr_text = wob.attrText(a, args.klasse)
		local info = p.form_attr[a].info or ""									-- Info-Text
		if type(info) == "table" then
			info = info[args.klasse] or info[1] or ""
		end
		if info ~= "" then
			info = args.frame:callParserFunction("#info", info, "note")
		end
		local field_args = p.form_attr[a].field_args
		if args.format == "vertical" then
			t = t ..
				"<tr>\n" ..
				"  <th>" .. attr_text .. ":</th>\n" ..
				"  <td>" .. info .. "</td>\n" ..
				"  <td>{{{field|" .. field_args .. "}}}</td>\n" ..
				"</tr>\n"
		elseif args.format == "horizontal" then
			t = t ..
				"  <th style=\"vertical-align:middle;\">" .. attr_text .. ":</th>" ..
				"  <td>" .. info .. " {{{field|" .. field_args .. "}}}</td>"
		end
	end
	if args.format == "horizontal" then
		t = t .. "</tr>\n"
	end
	t = t .. "</table>\n"
	return t
end

function p.common(args)
	local t = ""
	t = t .. "= Artikel =\n"
	t = t .. "{{{standard input|free text|rows=25|editor=wikieditor}}}"
	t = t .. "{{{standard input|summary}}}"
	t = t .. "{{{standard input|minor edit}}} {{{standard input|watch}}}<br>"
	t = t .. "{{{standard input|save}}} {{{standard input|changes}}} {{{standard input|cancel}}}"
	t = t .. "__NOTOC__"
	t = t .. "__NOEDITSECTION__"
	return t
end

return p