| rev |
line source |
|
bsw/jbe@5
|
1 slot.put_into("title", _"Registration")
|
|
bsw/jbe@5
|
2
|
|
bsw@286
|
3 local step = param.get("step", atom.integer)
|
|
bsw/jbe@5
|
4 local code = param.get("code")
|
|
bsw/jbe@6
|
5 local notify_email = param.get("notify_email")
|
|
bsw/jbe@5
|
6 local name = param.get("name")
|
|
bsw/jbe@5
|
7 local login = param.get("login")
|
|
bsw/jbe@5
|
8
|
|
bsw/jbe@6
|
9 slot.put_into("title", " (")
|
|
bsw/jbe@5
|
10 ui.form{
|
|
bsw/jbe@6
|
11 attr = { class = "vertical" },
|
|
bsw/jbe@5
|
12 module = 'index',
|
|
bsw/jbe@5
|
13 action = 'register',
|
|
bsw/jbe@5
|
14 params = {
|
|
bsw/jbe@5
|
15 code = code,
|
|
bsw/jbe@6
|
16 notify_email = notify_email,
|
|
bsw/jbe@5
|
17 name = name,
|
|
bsw/jbe@5
|
18 login = login
|
|
bsw/jbe@5
|
19 },
|
|
bsw/jbe@5
|
20 content = function()
|
|
bsw/jbe@5
|
21
|
|
bsw/jbe@5
|
22 if not code then
|
|
bsw@286
|
23 slot.put_into("title", _"Step 1/3: Invite code")
|
|
bsw@286
|
24 ui.field.hidden{ name = "step", value = 1 }
|
|
bsw/jbe@5
|
25 ui.tag{
|
|
bsw/jbe@5
|
26 tag = "p",
|
|
bsw/jbe@5
|
27 content = _"Please enter the invite code you've received."
|
|
bsw/jbe@5
|
28 }
|
|
bsw/jbe@5
|
29 ui.field.text{
|
|
bsw@286
|
30 label = _'Invite code',
|
|
bsw@286
|
31 name = 'code',
|
|
bsw/jbe@6
|
32 value = param.get("invite")
|
|
bsw/jbe@6
|
33 }
|
|
bsw/jbe@6
|
34
|
|
bsw/jbe@5
|
35 else
|
|
bsw@286
|
36 local member = Member:new_selector()
|
|
bsw@286
|
37 :add_where{ "invite_code = ?", code }
|
|
bsw@286
|
38 :add_where{ "activated ISNULL" }
|
|
bsw@286
|
39 :optional_object_mode()
|
|
bsw@286
|
40 :for_update()
|
|
bsw@286
|
41 :exec()
|
|
bsw@286
|
42
|
|
bsw@286
|
43 if not member.notify_email and not notify_email or not member.name and not name or not member.login and not login or step == 1 then
|
|
bsw@286
|
44 slot.put_into("title", _"Step 2/3: Personal information")
|
|
bsw@286
|
45 ui.field.hidden{ name = "step", value = 2 }
|
|
bsw@286
|
46 slot.select("actions", function()
|
|
bsw@286
|
47 ui.link{
|
|
bsw@286
|
48 content = function()
|
|
bsw@286
|
49 ui.image{ static = "icons/16/resultset_previous.png" }
|
|
bsw@286
|
50 slot.put(_"One step back")
|
|
bsw@286
|
51 end,
|
|
bsw@286
|
52 module = "index",
|
|
bsw@286
|
53 view = "register",
|
|
bsw@286
|
54 params = {
|
|
bsw@286
|
55 }
|
|
bsw/jbe@6
|
56 }
|
|
bsw@286
|
57 end)
|
|
bsw@286
|
58
|
|
bsw@286
|
59 ui.tag{
|
|
bsw@286
|
60 tag = "p",
|
|
bsw@286
|
61 content = _"This invite key is connected with the following information:"
|
|
bsw/jbe@6
|
62 }
|
|
bsw@286
|
63
|
|
bsw@286
|
64 execute.view{ module = "member", view = "_profile", params = { member = member, include_private_data = true } }
|
|
bsw@79
|
65
|
|
bsw@286
|
66 if not config.locked_profile_fields.notify_email then
|
|
bsw@286
|
67 ui.tag{
|
|
bsw@286
|
68 tag = "p",
|
|
bsw@286
|
69 content = _"Please enter your email address. This address will be used for automatic notifications (if you request them) and in case you've lost your password. This address will not be published. After registration you will receive an email with a confirmation link."
|
|
bsw@286
|
70 }
|
|
bsw@286
|
71 ui.field.text{
|
|
bsw@286
|
72 label = _'Email address',
|
|
bsw@286
|
73 name = 'notify_email',
|
|
bsw@286
|
74 value = param.get("notify_email") or member.notify_email
|
|
bsw@286
|
75 }
|
|
bsw@286
|
76 end
|
|
bsw@286
|
77 if not config.locked_profile_fields.name then
|
|
bsw@286
|
78 ui.tag{
|
|
bsw@286
|
79 tag = "p",
|
|
bsw@286
|
80 content = _"Please choose a name, i.e. your real name or your nick name. This name will be shown to others to identify you."
|
|
bsw@286
|
81 }
|
|
bsw@286
|
82 ui.field.text{
|
|
bsw@286
|
83 label = _'Screen name',
|
|
bsw@286
|
84 name = 'name',
|
|
bsw@286
|
85 value = param.get("name") or member.name
|
|
bsw@286
|
86 }
|
|
bsw@286
|
87 end
|
|
bsw@286
|
88 if not config.locked_profile_fields.login then
|
|
bsw@286
|
89 ui.tag{
|
|
bsw@286
|
90 tag = "p",
|
|
bsw@286
|
91 content = _"Please choose a login name. This name will not be shown to others and is used only by you to login into the system. The login name is case sensitive."
|
|
bsw@286
|
92 }
|
|
bsw@286
|
93 ui.field.text{
|
|
bsw@286
|
94 label = _'Login name',
|
|
bsw@286
|
95 name = 'login',
|
|
bsw@286
|
96 value = param.get("login") or member.login
|
|
bsw@286
|
97 }
|
|
bsw@286
|
98 end
|
|
bsw@286
|
99 else
|
|
bsw@286
|
100
|
|
bsw@286
|
101 ui.field.hidden{ name = "step", value = "3" }
|
|
bsw@286
|
102 slot.put_into("title", _"Step 3/3: Terms of use and password")
|
|
bsw@286
|
103 slot.select("actions", function()
|
|
bsw@286
|
104 ui.link{
|
|
bsw@286
|
105 content = function()
|
|
bsw@286
|
106 ui.image{ static = "icons/16/resultset_previous.png" }
|
|
bsw@286
|
107 slot.put(_"One step back")
|
|
bsw@286
|
108 end,
|
|
bsw@286
|
109 module = "index",
|
|
bsw@286
|
110 view = "register",
|
|
bsw@286
|
111 params = {
|
|
bsw@286
|
112 code = code,
|
|
bsw@286
|
113 notify_email = notify_email,
|
|
bsw@286
|
114 name = name,
|
|
bsw@286
|
115 login = login,
|
|
bsw@286
|
116 step = 1
|
|
bsw@286
|
117 }
|
|
bsw@286
|
118 }
|
|
bsw@286
|
119 end)
|
|
bsw@286
|
120 ui.container{
|
|
bsw@286
|
121 attr = { class = "wiki use_terms" },
|
|
bsw@79
|
122 content = function()
|
|
bsw@286
|
123 if config.use_terms_html then
|
|
bsw@286
|
124 slot.put(config.use_terms_html)
|
|
bsw@286
|
125 else
|
|
bsw@286
|
126 slot.put(format.wiki_text(config.use_terms))
|
|
bsw@286
|
127 end
|
|
bsw@79
|
128 end
|
|
bsw@79
|
129 }
|
|
bsw@79
|
130
|
|
bsw@286
|
131 for i, checkbox in ipairs(config.use_terms_checkboxes) do
|
|
bsw@286
|
132 slot.put("<br />")
|
|
bsw@286
|
133 ui.tag{
|
|
bsw@286
|
134 tag = "div",
|
|
bsw@286
|
135 content = function()
|
|
bsw@286
|
136 ui.tag{
|
|
bsw@286
|
137 tag = "input",
|
|
bsw@286
|
138 attr = {
|
|
bsw@286
|
139 type = "checkbox",
|
|
bsw@398
|
140 id = "use_terms_checkbox_" .. checkbox.name,
|
|
bsw@286
|
141 name = "use_terms_checkbox_" .. checkbox.name,
|
|
bsw@286
|
142 value = "1",
|
|
bsw@286
|
143 style = "float: left;",
|
|
bsw@286
|
144 checked = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean) and "checked" or nil
|
|
bsw@286
|
145 }
|
|
bsw@286
|
146 }
|
|
bsw@286
|
147 slot.put(" ")
|
|
bsw@398
|
148 ui.tag{
|
|
bsw@398
|
149 tag = "label",
|
|
bsw@398
|
150 attr = { ['for'] = "use_terms_checkbox_" .. checkbox.name },
|
|
bsw@398
|
151 content = function() slot.put(checkbox.html) end
|
|
bsw@398
|
152 }
|
|
bsw@286
|
153 end
|
|
bsw@286
|
154 }
|
|
bsw@286
|
155 end
|
|
bsw@79
|
156
|
|
bsw@286
|
157 slot.put("<br />")
|
|
bsw/jbe@6
|
158
|
|
bsw@286
|
159 member.notify_email = notify_email or member.notify_email
|
|
bsw@286
|
160 member.name = name or member.name
|
|
bsw@286
|
161 member.login = login or member.login
|
|
bsw@286
|
162
|
|
bsw@286
|
163 execute.view{ module = "member", view = "_profile", params = {
|
|
bsw@286
|
164 member = member, include_private_data = true
|
|
bsw@286
|
165 } }
|
|
bsw@286
|
166
|
|
bsw@286
|
167 ui.tag{
|
|
bsw@286
|
168 tag = "p",
|
|
bsw@286
|
169 content = _"Please choose a password and enter it twice. The password is case sensitive."
|
|
bsw@286
|
170 }
|
|
bsw@286
|
171 ui.field.password{
|
|
bsw@286
|
172 label = _'Password',
|
|
bsw@286
|
173 name = 'password1',
|
|
bsw@286
|
174 }
|
|
bsw@286
|
175 ui.field.password{
|
|
bsw@286
|
176 label = _'Password (repeat)',
|
|
bsw@286
|
177 name = 'password2',
|
|
bsw@286
|
178 }
|
|
bsw/jbe@5
|
179
|
|
bsw@286
|
180 end
|
|
bsw/jbe@5
|
181 end
|
|
bsw/jbe@5
|
182
|
|
bsw@286
|
183 ui.submit{
|
|
bsw@286
|
184 text = _'Register'
|
|
bsw@286
|
185 }
|
|
bsw/jbe@5
|
186
|
|
bsw@286
|
187 slot.put_into("title", ")")
|
|
bsw@286
|
188 slot.select("actions", function()
|
|
bsw@286
|
189 ui.link{
|
|
bsw@286
|
190 content = function()
|
|
bsw@286
|
191 ui.image{ static = "icons/16/cancel.png" }
|
|
bsw@286
|
192 slot.put(_"Cancel registration")
|
|
bsw@286
|
193 end,
|
|
bsw@286
|
194 module = "index",
|
|
bsw@286
|
195 view = "index"
|
|
bsw@286
|
196 }
|
|
bsw@286
|
197 end)
|
|
bsw/jbe@5
|
198 end
|
|
bsw/jbe@5
|
199 }
|
|
bsw/jbe@5
|
200
|
|
bsw/jbe@5
|
201
|