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 = {}
+ sign_up_draft = null
transaction.commit()
}
catch (error) {
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=placeholder.given_names required maxlength=256) {}
+ input.form-control#given-names(type="text" value=sign_up_draft !== null ? 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=placeholder.family_name maxlength=256) {}
+ input.form-control#family-name(type="text" value=sign_up_draft !== null ? sign_up_draft.family_name : '' placeholder=placeholder.family_name maxlength=256) {}
}
}
}
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=placeholder.email required maxlength=256) {}
+ input.form-control#email(type="email" value=sign_up_draft !== null ? sign_up_draft.email : '' placeholder=placeholder.email required maxlength=256) {}
div.invalid-feedback {'Please enter an email address we can contact you on.'}
}
}
div.row {
div.col-md-12 {
div.custom-control.custom-checkbox {
- if (sign_up_draft.contact_me !== false)
+ if (sign_up_draft === null || sign_up_draft.contact_me)
input.custom-control-input#contact-me(type="checkbox" checked) {}
else
input.custom-control-input#contact-me(type="checkbox") {}
}
button.btn.btn-outline-secondary#'card-1-new-code'(type="button") {'New code'}
- button.btn.btn-success.ml-3#card-1-create-account(type="button") {'Create account'}
+ if (sign_up_draft !== null)
+ button.btn.btn-success.ml-3#card-1-create-account(type="button") {'Create account'}
+ else
+ button.btn.btn-success.ml-3#card-1-create-account(type="button" disabled) {'Create account'}
p.'mt-3'.mb-0#card-1-message(style="display: none;") {}
}
div#card-2-collapse.collapse(role="tabpanel" aria-labelledby="card-2-heading" data-parent="#accordion") {
div.card-body {
button.btn.btn-outline-secondary#card-2-back(type="button") {'Back'}
- button.btn.btn-outline-secondary.ml-3#card-2-resend-email(type="button") {'Re-send email'}
+ button.btn.btn-outline-secondary.ml-3#card-2-resend-email(type="button" disabled) {'Re-send email'}
p.'mt-3'.mb-0#card-2-message(style="display: none;") {}
}
input_semaphore.try_acquire()
await api_call(
'/api/account/sign_up/set_draft.json',
- {
- email: document.getElementById('email').value.slice(0, 256).toLowerCase(),
- given_names: document.getElementById('given-names').value.slice(0, 256),
- family_name: document.getElementById('family-name').value.slice(0, 256),
- contact_me: document.getElementById('contact-me').checked ? true : false
- }
+ document.getElementById('card-1-create-account').disabled ?
+ null :
+ {
+ email: document.getElementById('email').value.slice(0, 256).toLowerCase(),
+ given_names: document.getElementById('given-names').value.slice(0, 256),
+ family_name: document.getElementById('family-name').value.slice(0, 256),
+ contact_me: document.getElementById('contact-me').checked ? true : false
+ }
)
}
}
)() // ignore returned promise (start thread)
+ let card_1_edited = in_draft => {
+ if (in_draft)
+ input_semaphore.release()
+ document.getElementById('card-1-create-account').disabled =
+ document.getElementById('given-names').value.length === 0 &&
+ document.getElementById('family-name').value.length === 0 &&
+ document.getElementById('contact-me').checked &&
+ document.getElementById('email').value.length === 0 &&
+ document.getElementById('verification-code').value.length === 0
+ }
+
let details
let card_1 = async () => {
if (!document.getElementById('form').checkValidity()) {
//document.getElementById('card-1-message').classList.add('text-success')
document.getElementById('card-1-message').classList.remove('text-danger')
$('#card-1-message').show()
+
+ document.getElementById('card-2-resend-email').disabled = false
return true
}
() => {
document.getElementById('given-names').addEventListener(
'input',
- () => {input_semaphore.release()}
+ () => {card_1_edited(true)}
)
document.getElementById('family-name').addEventListener(
'input',
- () => {input_semaphore.release()}
+ () => {card_1_edited(true)}
)
document.getElementById('email').addEventListener(
'input',
- () => {input_semaphore.release()}
+ () => {card_1_edited(true)}
+ )
+ document.getElementById('password').addEventListener(
+ 'input',
+ () => {card_1_edited(false)}
)
- //document.getElementById('password').addEventListener(
- // 'input',
- // () => {input_semaphore.release()}
- //)
document.getElementById('contact-me').addEventListener(
'input',
- () => {input_semaphore.release()}
+ () => {card_1_edited(true)}
+ )
+ document.getElementById('verification-code').addEventListener(
+ 'input',
+ () => {card_1_edited(false)}
)
- //document.getElementById('verification-code').addEventListener(
- // 'input',
- // () => {input_semaphore.release()}
- //)
let image_seq = 1
document.getElementById('card-1-new-code').addEventListener(