- let input_semaphore = new BinarySemaphore(false)
- ;(
- async () => {
- while (true) {
- await input_semaphore.acquire()
- await new Promise(resolve => setTimeout(resolve, 3000))
- input_semaphore.try_acquire()
- await api_call(
- '/api/account/sign_up/set_draft.json',
- 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
- }
- )
+ document.addEventListener(
+ 'DOMContentLoaded',
+ () => {
+ let id_accordion = document.getElementById('accordion')
+ let id_card_1 = document.getElementById('card-1')
+ let id_card_1_collapse = document.getElementById('card-1-collapse')
+ let id_card_1_create_account = document.getElementById('card-1-create-account')
+ let id_card_1_cross = document.getElementById('card-1-cross')
+ let id_card_1_heading = document.getElementById('card-1-heading')
+ let id_card_1_message = document.getElementById('card-1-message')
+ let id_card_1_new_code = document.getElementById('card-1-new-code')
+ let id_card_1_spinner = document.getElementById('card-1-spinner')
+ let id_card_1_tick = document.getElementById('card-1-tick')
+ let id_card_2 = document.getElementById('card-2')
+ let id_card_2_back = document.getElementById('card-2-back')
+ let id_card_2_collapse = document.getElementById('card-2-collapse')
+ let id_card_2_cross = document.getElementById('card-2-cross')
+ let id_card_2_heading = document.getElementById('card-2-heading')
+ let id_card_2_message = document.getElementById('card-2-message')
+ let id_card_2_resend_email = document.getElementById('card-2-resend-email')
+ let id_card_2_spinner = document.getElementById('card-2-spinner')
+ let id_card_2_tick = document.getElementById('card-2-tick')
+ let id_contact_me = document.getElementById('contact-me')
+ let id_email = document.getElementById('email')
+ let id_family_name = document.getElementById('family-name')
+ let id_form = document.getElementById('form')
+ let id_given_names = document.getElementById('given-names')
+ let id_password = document.getElementById('password')
+ let id_verification_code = document.getElementById('verification-code')
+ let id_verification_image = document.getElementById('verification-image')
+
+ let input_semaphore = new BinarySemaphore(false)
+ ;(
+ async () => {
+ while (true) {
+ await input_semaphore.acquire()
+ await new Promise(resolve => setTimeout(resolve, 3000))
+ input_semaphore.try_acquire()
+ await api_call(
+ '/api/account/sign_up/set_draft.json',
+ id_card_1_create_account.disabled ?
+ null :
+ {
+ email: id_email.value.slice(0, 256).toLowerCase(),
+ given_names: id_given_names.value.slice(0, 256),
+ family_name: id_family_name.value.slice(0, 256),
+ contact_me: id_contact_me.checked ? true : false
+ }
+ )
+ }
+ }
+ )() // ignore returned promise (start thread)
+
+ let card_1_edited = in_draft => {
+ if (in_draft)
+ input_semaphore.release()
+
+ id_card_1_create_account.disabled =
+ id_given_names.value.length === 0 &&
+ id_family_name.value.length === 0 &&
+ id_contact_me.checked &&
+ id_email.value.length === 0 &&
+ id_verification_code.value.length === 0
+ id_card_1_tick.hidden = true
+ id_card_1_cross.hidden = true
+ id_card_1_spinner.hidden = true
+ id_card_1_message.hidden = true
+
+ id_card_2_resend_email.disabled = true
+ id_card_2_tick.hidden = true
+ id_card_2_cross.hidden = true
+ id_card_2_spinner.hidden = true
+ id_card_2_message.hidden = true