},
// scripts
async _out => {
- //script(src="/js/api_call.js") {}
+ //script(src="/js/utils.js") {}
script {
- let draft_timeout_running = false
- let draft_timeout_handler = async () => {
- draft_timeout_running = false
- 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
+ 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',
+ {
+ 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
+ }
+ )
}
- )
- //console.log('draft', await api_call('/api/account/sign_up/get_draft.json'))
- }
- let draft_change_handler = () => {
- if (!draft_timeout_running) {
- draft_timeout_running = true
- setTimeout(draft_timeout_handler, 5000)
}
- }
+ )() // ignore returned promise (start thread)
let details
let card_1 = async () => {
'DOMContentLoaded',
() => {
document.getElementById('given-names').addEventListener(
- 'change',
- draft_change_handler
+ 'input',
+ () => {input_semaphore.release()}
)
document.getElementById('family-name').addEventListener(
- 'change',
- draft_change_handler
+ 'input',
+ () => {input_semaphore.release()}
)
document.getElementById('email').addEventListener(
- 'change',
- draft_change_handler
- )
- document.getElementById('password').addEventListener(
- 'change',
- draft_change_handler
+ 'input',
+ () => {input_semaphore.release()}
)
+ //document.getElementById('password').addEventListener(
+ // 'input',
+ // () => {input_semaphore.release()}
+ //)
document.getElementById('contact-me').addEventListener(
- 'change',
- draft_change_handler
+ 'input',
+ () => {input_semaphore.release()}
)
+ //document.getElementById('verification-code').addEventListener(
+ // 'input',
+ // () => {input_semaphore.release()}
+ //)
let image_seq = 1
document.getElementById('card-1-new-code').addEventListener(