liquid_feedback_frontend

annotate app/main/index/register.lua @ 740:4a106804aafb

Made registration process more clear, fixed hidden titles
author bsw
date Thu Jun 28 22:24:05 2012 +0200 (2012-06-28)
parents cae6d67b0594
children 6e4392a4ed9b
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("&nbsp;")
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

Impressum / About Us