| 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@286
|
140 name = "use_terms_checkbox_" .. checkbox.name,
|
|
bsw@286
|
141 value = "1",
|
|
bsw@286
|
142 style = "float: left;",
|
|
bsw@286
|
143 checked = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean) and "checked" or nil
|
|
bsw@286
|
144 }
|
|
bsw@286
|
145 }
|
|
bsw@286
|
146 slot.put(" ")
|
|
bsw@286
|
147 slot.put(checkbox.html)
|
|
bsw@286
|
148 end
|
|
bsw@286
|
149 }
|
|
bsw@286
|
150 end
|
|
bsw@79
|
151
|
|
bsw@286
|
152 slot.put("<br />")
|
|
bsw/jbe@6
|
153
|
|
bsw@286
|
154 member.notify_email = notify_email or member.notify_email
|
|
bsw@286
|
155 member.name = name or member.name
|
|
bsw@286
|
156 member.login = login or member.login
|
|
bsw@286
|
157
|
|
bsw@286
|
158 execute.view{ module = "member", view = "_profile", params = {
|
|
bsw@286
|
159 member = member, include_private_data = true
|
|
bsw@286
|
160 } }
|
|
bsw@286
|
161
|
|
bsw@286
|
162 ui.tag{
|
|
bsw@286
|
163 tag = "p",
|
|
bsw@286
|
164 content = _"Please choose a password and enter it twice. The password is case sensitive."
|
|
bsw@286
|
165 }
|
|
bsw@286
|
166 ui.field.password{
|
|
bsw@286
|
167 label = _'Password',
|
|
bsw@286
|
168 name = 'password1',
|
|
bsw@286
|
169 }
|
|
bsw@286
|
170 ui.field.password{
|
|
bsw@286
|
171 label = _'Password (repeat)',
|
|
bsw@286
|
172 name = 'password2',
|
|
bsw@286
|
173 }
|
|
bsw/jbe@5
|
174
|
|
bsw@286
|
175 end
|
|
bsw/jbe@5
|
176 end
|
|
bsw/jbe@5
|
177
|
|
bsw@286
|
178 ui.submit{
|
|
bsw@286
|
179 text = _'Register'
|
|
bsw@286
|
180 }
|
|
bsw/jbe@5
|
181
|
|
bsw@286
|
182 slot.put_into("title", ")")
|
|
bsw@286
|
183 slot.select("actions", function()
|
|
bsw@286
|
184 ui.link{
|
|
bsw@286
|
185 content = function()
|
|
bsw@286
|
186 ui.image{ static = "icons/16/cancel.png" }
|
|
bsw@286
|
187 slot.put(_"Cancel registration")
|
|
bsw@286
|
188 end,
|
|
bsw@286
|
189 module = "index",
|
|
bsw@286
|
190 view = "index"
|
|
bsw@286
|
191 }
|
|
bsw@286
|
192 end)
|
|
bsw/jbe@5
|
193 end
|
|
bsw/jbe@5
|
194 }
|
|
bsw/jbe@5
|
195
|
|
bsw/jbe@5
|
196
|