Add random placeholder data generator (persists in session for 24 hours)
[ndcode_site.git] / my_account / sign_up / index.html.jst
index 060cee5..6d6206c 100644 (file)
@@ -1,5 +1,6 @@
 return async env => {
   let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  let get_placeholder = await _require('/_lib/get_placeholder.jst')
   let get_session = await _require('/_lib/get_session.jst')
   let icon_cross = await env.site.get_min_svg('/_svg/icon_cross.svg')
   let icon_tick = await env.site.get_min_svg('/_svg/icon_tick.svg')
@@ -7,16 +8,20 @@ return async env => {
 
   // preload draft details if any
   let transaction = await env.site.database.Transaction()
+  let placeholder
   let sign_up_draft
   try {
     let root = await transaction.get({})
     let session = await get_session(env, root)
+    placeholder = await get_placeholder(env, session)
     sign_up_draft = await session.get_json('sign_up_draft')
     if (sign_up_draft === undefined || env.now >= sign_up_draft.expires)
       sign_up_draft = {}
+    transaction.commit()
   }
-  finally {
+  catch (error) {
     transaction.rollback()
+    throw error
   }
 
   await navbar(
@@ -58,14 +63,14 @@ return async env => {
                   div.col-md-6 {
                     div.form-group {
                       label.form-label(for="given-names") {'Given names *'}
-                      input.form-control#given-names(type="text" value=sign_up_draft.given_names || '' placeholder="Miley" required maxlength=256) {}
+                      input.form-control#given-names(type="text" value=sign_up_draft.given_names || '' placeholder=placeholder.given_names required maxlength=256) {}
                       div.invalid-feedback {'Please enter a name we can address you by.'}
                     }
                   }
                   div.col-md-6 {
                     div.form-group {
                       label.form-label(for="family-name") {'Family name'}
-                      input.form-control#family-name(type="text" value=sign_up_draft.family_name || '' placeholder="Chapman" maxlength=256) {}
+                      input.form-control#family-name(type="text" value=sign_up_draft.family_name || '' placeholder=placeholder.family_name maxlength=256) {}
                     }
                   }
                 }
@@ -73,7 +78,7 @@ return async env => {
                   div.col-md-6 {
                     div.form-group {
                       label.form-label(for="email") {'Email *'}
-                      input.form-control#email(type="email" value=sign_up_draft.email || '' placeholder="mileychapman@email.com" required maxlength=256) {}
+                      input.form-control#email(type="email" value=sign_up_draft.email || '' placeholder=placeholder.email required maxlength=256) {}
                       div.invalid-feedback {'Please enter an email address we can contact you on.'}
                     }
                   }
@@ -88,7 +93,7 @@ return async env => {
                 div.row {
                   div.col-md-12 {
                     div.custom-control.custom-checkbox {
-                      if (sign_up_draft === undefined || sign_up_draft.contact_me)
+                      if (sign_up_draft.contact_me !== false)
                         input.custom-control-input#contact-me(type="checkbox" checked) {}
                       else
                         input.custom-control-input#contact-me(type="checkbox") {}
@@ -103,7 +108,7 @@ return async env => {
                   div.col-md-6 {
                     div.form-group {
                       label.form-label(for="verification-code") {'Verification code *'}
-                      input.form-control#verification-code(type="text" placeholder="ad7jb3" required minlength=6 maxlength=6) {}
+                      input.form-control#verification-code(type="text" placeholder=placeholder.captcha_text required minlength=6 maxlength=6) {}
                       div.invalid-feedback {'Please enter the 6 characters from the verification image to right or below. We need this to protect us from spam and bots.'}
                     }
                   }