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