| rev |
line source |
|
bsw/jbe@1309
|
1 for i, field in ipairs(config.self_registration.fields) do
|
|
bsw/jbe@1309
|
2 local class = ""
|
|
bsw/jbe@1309
|
3 local field_error = slot.get_content("self_registration__invalid_" .. field.name)
|
|
bsw/jbe@1309
|
4 if field_error == "" then
|
|
bsw/jbe@1309
|
5 field_error = nil
|
|
bsw/jbe@1309
|
6 end
|
|
bsw/jbe@1309
|
7 if field_error then
|
|
bsw/jbe@1309
|
8 class = " is-invalid"
|
|
bsw/jbe@1309
|
9 end
|
|
bsw@1359
|
10 if not field.internal then
|
|
bsw@1359
|
11 if field.name == "date_of_birth" then
|
|
bsw@1359
|
12 local label = field.label
|
|
bsw@1359
|
13 if field.optional then
|
|
bsw@1359
|
14 label = label .. config.self_registration.optional_field_indicator
|
|
bsw@1359
|
15 end
|
|
bsw@1359
|
16 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@1359
|
17 slot.put(" ")
|
|
bsw@1359
|
18 local days = { { id = 0, name = _"day" } }
|
|
bsw@1359
|
19 for i = 1, 31 do
|
|
bsw@1359
|
20 table.insert(days, { id = i, name = i })
|
|
bsw@1359
|
21 end
|
|
bsw@1359
|
22 local months = {
|
|
bsw/jbe@1309
|
23 { id = 0, name = _"month" },
|
|
bsw@1359
|
24 { id = 1, name = "gennaio" },
|
|
bsw@1359
|
25 { id = 2, name = "febbraio" },
|
|
bsw@1359
|
26 { id = 3, name = "marzo" },
|
|
bsw@1359
|
27 { id = 4, name = "aprile" },
|
|
bsw@1359
|
28 { id = 5, name = "maggio" },
|
|
bsw@1359
|
29 { id = 6, name = "giugno" },
|
|
bsw@1359
|
30 { id = 7, name = "luglio" },
|
|
bsw@1359
|
31 { id = 8, name = "agosto" },
|
|
bsw@1359
|
32 { id = 9, name = "settembre" },
|
|
bsw@1359
|
33 { id = 10, name = "ottobre" },
|
|
bsw@1359
|
34 { id = 11, name = "novembre" },
|
|
bsw@1359
|
35 { id = 12, name = "dicembre" },
|
|
bsw@1359
|
36 }
|
|
bsw@1359
|
37 if config.self_registration.lang == "en" then
|
|
bsw@1359
|
38 months = {
|
|
bsw@1359
|
39 { id = 0, name = _"month" },
|
|
bsw@1359
|
40 { id = 1, name = "January" },
|
|
bsw@1359
|
41 { id = 2, name = "February" },
|
|
bsw@1359
|
42 { id = 3, name = "March" },
|
|
bsw@1359
|
43 { id = 4, name = "April" },
|
|
bsw@1359
|
44 { id = 5, name = "May" },
|
|
bsw@1359
|
45 { id = 6, name = "June" },
|
|
bsw@1359
|
46 { id = 7, name = "July" },
|
|
bsw@1359
|
47 { id = 8, name = "August" },
|
|
bsw@1359
|
48 { id = 9, name = "September" },
|
|
bsw@1359
|
49 { id = 10, name = "October" },
|
|
bsw@1359
|
50 { id = 11, name = "November" },
|
|
bsw@1359
|
51 { id = 12, name = "December" },
|
|
bsw@1359
|
52 }
|
|
bsw@1359
|
53 end
|
|
bsw@1359
|
54 local years = { { id = 0, name = _"year" } }
|
|
bsw@1359
|
55 for i = 2002, 1900, -1 do
|
|
bsw@1359
|
56 table.insert(years, { id = i, name = i })
|
|
bsw@1359
|
57 end
|
|
bsw@1359
|
58 ui.field.select{
|
|
bsw@1359
|
59 container_attr = { style = "display: inline-block; " },
|
|
bsw@1359
|
60 attr = { class = class },
|
|
bsw@1359
|
61 foreign_records = days,
|
|
bsw@1359
|
62 foreign_id = "id",
|
|
bsw@1359
|
63 foreign_name = "name",
|
|
bsw@1359
|
64 name = "verification_data_" .. field.name .. "_day",
|
|
bsw@1359
|
65 value = tonumber(request.get_param{ name = "verification_data_" .. field.name .. "_day" })
|
|
bsw@1359
|
66 }
|
|
bsw@1359
|
67 slot.put(" ")
|
|
bsw@1359
|
68 ui.field.select{
|
|
bsw@1359
|
69 container_attr = { style = "display: inline-block; " },
|
|
bsw@1359
|
70 attr = { class = class },
|
|
bsw@1359
|
71 foreign_records = months,
|
|
bsw@1359
|
72 foreign_id = "id",
|
|
bsw@1359
|
73 foreign_name = "name",
|
|
bsw@1359
|
74 name = "verification_data_" .. field.name .. "_month",
|
|
bsw@1359
|
75 value = tonumber(request.get_param{ name = "verification_data_" .. field.name .. "_month" })
|
|
bsw@1359
|
76 }
|
|
bsw@1359
|
77 slot.put(" ")
|
|
bsw@1359
|
78 ui.field.select{
|
|
bsw@1359
|
79 container_attr = { style = "display: inline-block; " },
|
|
bsw@1359
|
80 attr = { class = class },
|
|
bsw@1359
|
81 foreign_records = years,
|
|
bsw@1359
|
82 foreign_id = "id",
|
|
bsw@1359
|
83 foreign_name = "name",
|
|
bsw@1359
|
84 name = "verification_data_" .. field.name .. "_year",
|
|
bsw@1359
|
85 value = tonumber(request.get_param{ name = "verification_data_" .. field.name .. "_year" })
|
|
bsw@1359
|
86 }
|
|
bsw@1359
|
87 slot.put("<br />")
|
|
bsw@1377
|
88
|
|
bsw@1377
|
89 elseif field.type == "dropdown" then
|
|
bsw@1380
|
90 local options = { { id = "", name = "" } }
|
|
bsw@1377
|
91 for i_options, option in ipairs(field.options) do
|
|
bsw@1377
|
92 table.insert(options, option)
|
|
bsw@1377
|
93 end
|
|
bsw@1380
|
94 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@1380
|
95 slot.put(" ")
|
|
bsw@1377
|
96 ui.field.select{
|
|
bsw@1377
|
97 container_attr = { style = "display: inline-block; " },
|
|
bsw@1377
|
98 attr = { class = class },
|
|
bsw@1377
|
99 foreign_records = options,
|
|
bsw@1377
|
100 foreign_id = "id",
|
|
bsw@1377
|
101 foreign_name = "name",
|
|
bsw@1377
|
102 name = "verification_data_" .. field.name,
|
|
bsw@1377
|
103 value = tonumber(request.get_param{ name = "verification_data_" .. field.name })
|
|
bsw@1377
|
104 }
|
|
bsw@1381
|
105 slot.put("<br />")
|
|
bsw@1377
|
106
|
|
bsw@1359
|
107 elseif field.type == "image" then
|
|
bsw@1386
|
108 slot.put("<br />")
|
|
bsw@1392
|
109 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@1392
|
110 slot.put("<br />")
|
|
bsw@1391
|
111 ui.script{ script = [[
|
|
bsw@1391
|
112 function getFile(){
|
|
bsw@1392
|
113 document.getElementById("fileInput").click();
|
|
bsw@1391
|
114 }
|
|
bsw@1391
|
115 function fileChoosen(obj){
|
|
bsw@1391
|
116 var file = obj.value;
|
|
bsw@1391
|
117 var fileName = file.split("\\");
|
|
bsw@1391
|
118 document.getElementById("fileBtn").innerHTML = fileName[fileName.length-1];
|
|
bsw@1396
|
119 document.getElementById("fileCheckbox").checked = fileName.length > 0 ? true : false;
|
|
bsw@1391
|
120 event.preventDefault();
|
|
bsw@1391
|
121 }
|
|
bsw@1391
|
122 ]] }
|
|
bsw@1393
|
123 ui.tag{ tag = "input", attr = { id = "fileInput", style = "display: none;", type = "file", name = "verification_data_" .. field.name, onchange = "fileChoosen(this);" } }
|
|
bsw@1396
|
124 ui.tag{ tag = "label", attr = {
|
|
bsw@1396
|
125 class = "mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect",
|
|
bsw@1396
|
126 style = "display: inline;",
|
|
bsw@1396
|
127 },
|
|
bsw@1396
|
128 content = function()
|
|
bsw@1396
|
129 ui.tag{
|
|
bsw@1396
|
130 tag = "input",
|
|
bsw@1396
|
131 attr = {
|
|
bsw@1396
|
132 type = "checkbox",
|
|
bsw@1396
|
133 class = "mdl-checkbox__input",
|
|
bsw@1396
|
134 id = "fileCheckbox",
|
|
bsw@1396
|
135 style = "float: left;",
|
|
bsw@1396
|
136 onclick = "getFile();"
|
|
bsw@1396
|
137 }
|
|
bsw@1396
|
138 }
|
|
bsw@1396
|
139 ui.tag{
|
|
bsw@1396
|
140 attr = { id = "fileBtn", class = "mdl-checkbox__label", onclick = "getFile();" },
|
|
bsw@1396
|
141 content = field.upload_label
|
|
bsw@1396
|
142 }
|
|
bsw@1395
|
143 }
|
|
bsw@1395
|
144 }
|
|
bsw@1367
|
145 if field.optional_checkbox then
|
|
bsw@1391
|
146 slot.put(" ")
|
|
bsw@1375
|
147 ui.tag{ tag = "label", attr = {
|
|
bsw@1375
|
148 class = "mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect",
|
|
bsw@1394
|
149 style = "display: inline;",
|
|
bsw@1375
|
150 ["for"] = "verification_data_" .. field.name .. "_optout"
|
|
bsw@1375
|
151 },
|
|
bsw@1375
|
152 content = function()
|
|
bsw@1375
|
153 ui.tag{
|
|
bsw@1375
|
154 tag = "input",
|
|
bsw@1375
|
155 attr = {
|
|
bsw@1375
|
156 type = "checkbox",
|
|
bsw@1375
|
157 class = "mdl-checkbox__input",
|
|
bsw@1375
|
158 id = "verification_data_" .. field.name .. "_optout",
|
|
bsw@1375
|
159 name = "verification_data_" .. field.name .. "_optout",
|
|
bsw@1375
|
160 value = "1",
|
|
bsw@1375
|
161 style = "float: left;",
|
|
bsw@1375
|
162 checked = request.get_param{ name = "verification_data_" .. field.name .. "_optout" } and "checked" or nil,
|
|
bsw@1375
|
163 }
|
|
bsw@1375
|
164 }
|
|
bsw@1375
|
165 ui.tag{
|
|
bsw@1375
|
166 attr = { class = "mdl-checkbox__label" },
|
|
bsw@1375
|
167 content = field.optional_checkbox
|
|
bsw@1375
|
168 }
|
|
bsw@1375
|
169 end
|
|
bsw@1375
|
170 }
|
|
bsw@1367
|
171 end
|
|
bsw@1359
|
172
|
|
bsw@1359
|
173 elseif field.name == "unit" then
|
|
bsw@1359
|
174 local units_selector = Unit:new_selector()
|
|
bsw@1359
|
175 :add_where{ "active" }
|
|
bsw@1359
|
176 if field.where then
|
|
bsw@1359
|
177 units_selector:add_where(field.where)
|
|
bsw@1359
|
178 end
|
|
bsw@1359
|
179 local units = {}
|
|
bsw@1359
|
180 if field.optional then
|
|
bsw@1359
|
181 table.insert(units, {
|
|
bsw@1359
|
182 id = "",
|
|
bsw@1359
|
183 name = _"None"
|
|
bsw@1359
|
184 })
|
|
bsw@1359
|
185 end
|
|
bsw@1359
|
186 for i_unit, unit in ipairs(units_selector:exec()) do
|
|
bsw@1359
|
187 table.insert(units, unit)
|
|
bsw@1359
|
188 end
|
|
bsw@1382
|
189 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@1382
|
190 slot.put(" ")
|
|
bsw@1359
|
191 ui.field.select{
|
|
bsw@1383
|
192 container_attr = { style = "display: inline-block; " },
|
|
bsw@1359
|
193 foreign_records = units,
|
|
bsw@1359
|
194 foreign_id = "id",
|
|
bsw@1359
|
195 foreign_name = "name",
|
|
bsw@1359
|
196 name = "verification_data_" .. field.name,
|
|
bsw@1359
|
197 value = tonumber(request.get_param{ name = "verification_data_" .. field.name })
|
|
bsw@1359
|
198 }
|
|
bsw@1386
|
199 slot.put("<br />")
|
|
bsw@1359
|
200 else
|
|
bsw@1359
|
201 if field.name == "mobile_phone" then
|
|
bsw@1359
|
202 if config.self_registration.lang ~= "en" then
|
|
bsw@1359
|
203 ui.tag{ content = "+39" }
|
|
bsw@1359
|
204 slot.put(" ")
|
|
bsw@1359
|
205 end
|
|
bsw@1359
|
206 end
|
|
bsw@1359
|
207 ui.field.text{
|
|
bsw@1359
|
208 container_attr = { class = "mdl-textfield mdl-js-textfield mdl-textfield--floating-label" .. class },
|
|
bsw@1359
|
209 attr = { id = "lf-register__data_" .. field.name, class = "mdl-textfield__input" },
|
|
bsw@1359
|
210 label_attr = { class = "mdl-textfield__label", ["for"] = "lf-register__data" .. field.name },
|
|
bsw@1359
|
211 label = field.label,
|
|
bsw@1359
|
212 name = "verification_data_" .. field.name,
|
|
bsw@1359
|
213 value = request.get_param{ name = "verification_data_" .. field.name }
|
|
bsw/jbe@1309
|
214 }
|
|
bsw/jbe@1309
|
215 end
|
|
bsw@1327
|
216 slot.put("<br />")
|
|
bsw/jbe@1309
|
217 end
|
|
bsw/jbe@1309
|
218 end
|