bsw/jbe@1309: for i, field in ipairs(config.self_registration.fields) do bsw/jbe@1309: local class = "" bsw/jbe@1309: local field_error = slot.get_content("self_registration__invalid_" .. field.name) bsw/jbe@1309: if field_error == "" then bsw/jbe@1309: field_error = nil bsw/jbe@1309: end bsw/jbe@1309: if field_error then bsw/jbe@1309: class = " is-invalid" bsw/jbe@1309: end bsw/jbe@1309: if field.name == "date_of_birth" then bsw/jbe@1309: slot.put("
") bsw@1313: local label = field.label bsw@1313: if field.optional then bsw@1313: label = label .. config.self_registration.optional_field_indicator bsw@1313: end bsw/jbe@1309: ui.tag{ tag = "label", attr = { style = "vertical-align: bottom; border-bottom: 1px solid rgba(0,0,0, 0.12); color: #777; font-size: 16px;" }, content = field.label .. ":" } bsw/jbe@1309: slot.put("   ") bsw/jbe@1309: local days = { { id = 0, name = _"day" } } bsw/jbe@1309: for i = 1, 31 do bsw/jbe@1309: table.insert(days, { id = i, name = i }) bsw/jbe@1309: end bsw/jbe@1309: local months = { bsw/jbe@1309: { id = 0, name = _"month" }, bsw/jbe@1309: { id = 1, name = "gennaio" }, bsw/jbe@1309: { id = 2, name = "febbraio" }, bsw/jbe@1309: { id = 3, name = "marzo" }, bsw/jbe@1309: { id = 4, name = "aprile" }, bsw/jbe@1309: { id = 5, name = "maggio" }, bsw/jbe@1309: { id = 6, name = "giugno" }, bsw/jbe@1309: { id = 7, name = "luglio" }, bsw/jbe@1309: { id = 8, name = "agosto" }, bsw/jbe@1309: { id = 9, name = "settembre" }, bsw/jbe@1309: { id = 10, name = "ottobre" }, bsw/jbe@1309: { id = 11, name = "novembre" }, bsw/jbe@1309: { id = 12, name = "dicembre" }, bsw/jbe@1309: } bsw/jbe@1309: if config.self_registration.lang == "en" then bsw/jbe@1309: months = { bsw/jbe@1309: { id = 0, name = _"month" }, bsw/jbe@1309: { id = 1, name = "January" }, bsw/jbe@1309: { id = 2, name = "February" }, bsw/jbe@1309: { id = 3, name = "March" }, bsw/jbe@1309: { id = 4, name = "April" }, bsw/jbe@1309: { id = 5, name = "May" }, bsw/jbe@1309: { id = 6, name = "June" }, bsw/jbe@1309: { id = 7, name = "July" }, bsw/jbe@1309: { id = 8, name = "August" }, bsw/jbe@1309: { id = 9, name = "September" }, bsw/jbe@1309: { id = 10, name = "October" }, bsw/jbe@1309: { id = 11, name = "November" }, bsw/jbe@1309: { id = 12, name = "December" }, bsw/jbe@1309: } bsw/jbe@1309: end bsw/jbe@1309: local years = { { id = 0, name = _"year" } } bsw/jbe@1309: for i = 2002, 1900, -1 do bsw/jbe@1309: table.insert(years, { id = i, name = i }) bsw/jbe@1309: end bsw/jbe@1309: ui.field.select{ bsw/jbe@1309: container_attr = { style = "display: inline-block; " }, bsw/jbe@1309: attr = { class = class }, bsw/jbe@1309: foreign_records = days, bsw/jbe@1309: foreign_id = "id", bsw/jbe@1309: foreign_name = "name", bsw/jbe@1309: name = "verification_data_" .. field.name .. "_day", bsw/jbe@1309: value = tonumber(request.get_param{ name = "verification_data_" .. field.name .. "_day" }) bsw/jbe@1309: } bsw/jbe@1309: slot.put("   ") bsw/jbe@1309: ui.field.select{ bsw/jbe@1309: container_attr = { style = "display: inline-block; " }, bsw/jbe@1309: attr = { class = class }, bsw/jbe@1309: foreign_records = months, bsw/jbe@1309: foreign_id = "id", bsw/jbe@1309: foreign_name = "name", bsw/jbe@1309: name = "verification_data_" .. field.name .. "_month", bsw/jbe@1309: value = tonumber(request.get_param{ name = "verification_data_" .. field.name .. "_month" }) bsw/jbe@1309: } bsw/jbe@1309: slot.put("   ") bsw/jbe@1309: ui.field.select{ bsw/jbe@1309: container_attr = { style = "display: inline-block; " }, bsw/jbe@1309: attr = { class = class }, bsw/jbe@1309: foreign_records = years, bsw/jbe@1309: foreign_id = "id", bsw/jbe@1309: foreign_name = "name", bsw/jbe@1309: name = "verification_data_" .. field.name .. "_year", bsw/jbe@1309: value = tonumber(request.get_param{ name = "verification_data_" .. field.name .. "_year" }) bsw/jbe@1309: } bsw@1327: slot.put("
") bsw/jbe@1309: bsw@1330: elseif field.type == "image" then bsw@1330: ui.tag{ tag = "label", content = field.label } bsw@1332: ui.tag{ tag = "input", attr = { type = "file", name = "verification_data_" .. field.name } } bsw@1330: bsw@1327: elseif field.name == "unit" then bsw@1327: local units_selector = Unit:new_selector() bsw@1327: :add_where{ "active" } bsw@1327: if field.where then bsw@1327: units_selector:add_where(field.where) bsw@1327: end bsw@1350: local units = {} bsw@1329: if field.optional then bsw@1329: table.insert(units, { bsw@1329: id = "", bsw@1329: name = _"None" bsw@1329: }) bsw@1329: end bsw@1350: for i_unit, unit in ipairs(units_selector:exec()) do bsw@1350: table.insert(units, unit) bsw@1350: end bsw@1327: ui.field.select{ bsw@1328: label = field.label, bsw@1327: foreign_records = units, bsw@1327: foreign_id = "id", bsw@1327: foreign_name = "name", bsw@1333: name = "verification_data_" .. field.name, bsw@1327: value = tonumber(request.get_param{ name = "verification_data_" .. field.name }) bsw@1327: } bsw/jbe@1309: else bsw/jbe@1309: if field.name == "mobile_phone" then bsw/jbe@1309: if config.self_registration.lang ~= "en" then bsw/jbe@1309: ui.tag{ content = "+39" } bsw/jbe@1309: slot.put(" ") bsw/jbe@1309: end bsw/jbe@1309: end bsw/jbe@1309: ui.field.text{ bsw/jbe@1309: container_attr = { class = "mdl-textfield mdl-js-textfield mdl-textfield--floating-label" .. class }, bsw/jbe@1309: attr = { id = "lf-register__data_" .. field.name, class = "mdl-textfield__input" }, bsw/jbe@1309: label_attr = { class = "mdl-textfield__label", ["for"] = "lf-register__data" .. field.name }, bsw/jbe@1309: label = field.label, bsw/jbe@1309: name = "verification_data_" .. field.name, bsw/jbe@1309: value = request.get_param{ name = "verification_data_" .. field.name } bsw/jbe@1309: } bsw/jbe@1309: end bsw/jbe@1309: slot.put("
") bsw/jbe@1309: end