bsw@441: execute.view{ module = "index", view = "_lang_chooser" }
bsw@441:
bsw@286: local step = param.get("step", atom.integer)
bsw/jbe@5: local code = param.get("code")
bsw/jbe@6: local notify_email = param.get("notify_email")
bsw/jbe@5: local name = param.get("name")
bsw/jbe@5: local login = param.get("login")
bsw/jbe@5:
bsw/jbe@5: ui.form{
bsw/jbe@6: attr = { class = "vertical" },
bsw/jbe@5: module = 'index',
bsw/jbe@5: action = 'register',
bsw/jbe@5: params = {
bsw/jbe@5: code = code,
bsw/jbe@6: notify_email = notify_email,
bsw/jbe@5: name = name,
bsw/jbe@5: login = login
bsw/jbe@5: },
bsw/jbe@5: content = function()
bsw/jbe@5:
bsw/jbe@5: if not code then
bsw@740: ui.title(_"Registration (step 1 of 3: Invite code)")
bsw@286: ui.field.hidden{ name = "step", value = 1 }
bsw/jbe@5: ui.tag{
bsw/jbe@5: tag = "p",
bsw/jbe@5: content = _"Please enter the invite code you've received."
bsw/jbe@5: }
bsw/jbe@5: ui.field.text{
bsw@286: label = _'Invite code',
bsw@286: name = 'code',
bsw/jbe@6: value = param.get("invite")
bsw/jbe@6: }
bsw/jbe@6:
bsw/jbe@5: else
bsw@286: local member = Member:new_selector()
bsw@286: :add_where{ "invite_code = ?", code }
bsw@286: :add_where{ "activated ISNULL" }
bsw@286: :optional_object_mode()
bsw@286: :for_update()
bsw@286: :exec()
bsw@286:
bsw@286: 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: ui.title(_"Registration (step 2 of 3: Personal information)")
bsw@286: ui.field.hidden{ name = "step", value = 2 }
bsw@286: slot.select("actions", function()
bsw@286: ui.link{
bsw@286: content = function()
bsw@286: ui.image{ static = "icons/16/resultset_previous.png" }
bsw@286: slot.put(_"One step back")
bsw@286: end,
bsw@286: module = "index",
bsw@286: view = "register",
bsw@286: params = {
bsw@286: }
bsw/jbe@6: }
bsw@286: end)
bsw@286:
bsw@286: ui.tag{
bsw@286: tag = "p",
bsw@286: content = _"This invite key is connected with the following information:"
bsw/jbe@6: }
bsw@286:
bsw@286: execute.view{ module = "member", view = "_profile", params = { member = member, include_private_data = true } }
bsw@79:
bsw@286: if not config.locked_profile_fields.notify_email then
bsw@286: ui.tag{
bsw@286: tag = "p",
bsw@286: 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: }
bsw@286: ui.field.text{
bsw@286: label = _'Email address',
bsw@286: name = 'notify_email',
bsw@286: value = param.get("notify_email") or member.notify_email
bsw@286: }
bsw@286: end
bsw@286: if not config.locked_profile_fields.name then
bsw@286: ui.tag{
bsw@286: tag = "p",
bsw@286: 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: }
bsw@286: ui.field.text{
bsw@286: label = _'Screen name',
bsw@286: name = 'name',
bsw@286: value = param.get("name") or member.name
bsw@286: }
bsw@286: end
bsw@286: if not config.locked_profile_fields.login then
bsw@286: ui.tag{
bsw@286: tag = "p",
bsw@286: 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: }
bsw@286: ui.field.text{
bsw@286: label = _'Login name',
bsw@286: name = 'login',
bsw@286: value = param.get("login") or member.login
bsw@286: }
bsw@286: end
bsw@286: else
bsw@286:
bsw@286: ui.field.hidden{ name = "step", value = "3" }
bsw@740: ui.title(_"Registration (step 3 of 3: Terms of use and password)")
bsw@286: slot.select("actions", function()
bsw@286: ui.link{
bsw@286: content = function()
bsw@286: ui.image{ static = "icons/16/resultset_previous.png" }
bsw@286: slot.put(_"One step back")
bsw@286: end,
bsw@286: module = "index",
bsw@286: view = "register",
bsw@286: params = {
bsw@286: code = code,
bsw@286: notify_email = notify_email,
bsw@286: name = name,
bsw@286: login = login,
bsw@286: step = 1
bsw@286: }
bsw@286: }
bsw@286: end)
bsw@286: ui.container{
bsw@286: attr = { class = "wiki use_terms" },
bsw@79: content = function()
bsw@286: if config.use_terms_html then
bsw@286: slot.put(config.use_terms_html)
bsw@286: else
bsw@286: slot.put(format.wiki_text(config.use_terms))
bsw@286: end
bsw@79: end
bsw@79: }
bsw@79:
bsw@739: member.notify_email = notify_email or member.notify_email
bsw@739: member.name = name or member.name
bsw@739: member.login = login or member.login
bsw@739:
bsw@739: execute.view{ module = "member", view = "_profile", params = {
bsw@739: member = member, include_private_data = true
bsw@739: } }
bsw@739:
bsw@286: for i, checkbox in ipairs(config.use_terms_checkboxes) do
bsw@286: slot.put("
")
bsw@286: ui.tag{
bsw@286: tag = "div",
bsw@286: content = function()
bsw@286: ui.tag{
bsw@286: tag = "input",
bsw@286: attr = {
bsw@286: type = "checkbox",
bsw@398: id = "use_terms_checkbox_" .. checkbox.name,
bsw@286: name = "use_terms_checkbox_" .. checkbox.name,
bsw@286: value = "1",
bsw@286: style = "float: left;",
bsw@286: checked = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean) and "checked" or nil
bsw@286: }
bsw@286: }
bsw@286: slot.put(" ")
bsw@398: ui.tag{
bsw@398: tag = "label",
bsw@398: attr = { ['for'] = "use_terms_checkbox_" .. checkbox.name },
bsw@398: content = function() slot.put(checkbox.html) end
bsw@398: }
bsw@286: end
bsw@286: }
bsw@286: end
bsw@79:
bsw@286: slot.put("
")
bsw/jbe@6:
bsw@286: ui.tag{
bsw@286: tag = "p",
bsw@286: content = _"Please choose a password and enter it twice. The password is case sensitive."
bsw@286: }
bsw@286: ui.field.password{
bsw@286: label = _'Password',
bsw@286: name = 'password1',
bsw@286: }
bsw@286: ui.field.password{
bsw@286: label = _'Password (repeat)',
bsw@286: name = 'password2',
bsw@286: }
bsw/jbe@5:
bsw@286: end
bsw/jbe@5: end
bsw/jbe@5:
bsw@286: ui.submit{
bsw@740: text = _'Create account'
bsw@286: }
bsw/jbe@5:
bsw@286: slot.select("actions", function()
bsw@286: ui.link{
bsw@286: content = function()
bsw@286: ui.image{ static = "icons/16/cancel.png" }
bsw@286: slot.put(_"Cancel registration")
bsw@286: end,
bsw@286: module = "index",
bsw@286: view = "index"
bsw@286: }
bsw@286: end)
bsw/jbe@5: end
bsw/jbe@5: }
bsw/jbe@5:
bsw/jbe@5: