Update /contact/index.html.jst to latest way, no accordion, placeholder company
[ndcode_site.git] / _lib / get_placeholder.jst
1 let logjson = (await import('@ndcode/logjson')).default
2 let XDate = require('xdate')
3
4 return async (env, session) => {
5   let data = await env.site.get_json('/_placeholder/data.json')
6
7   // placeholder data (name, email, address etc) is generated randomly)
8   // it is stored in session, so user shouldn't normally realize it's random,
9   // and updated every 24 hours (in case we generated an embarrassing one)
10   let placeholder = await session.get_json('placeholder')
11   if (placeholder === undefined || env.now >= placeholder.expires) {
12     let given_name = data.given_names[
13       Math.floor(Math.random() * data.given_names.length)
14     ]
15
16     let family_name = data.family_names[
17       Math.floor(Math.random() * data.family_names.length)
18     ]
19
20     let user =
21       Math.random() < .5 ?
22         [given_name, family_name] :
23         [family_name, given_name]
24     if (Math.random() < .5)
25       user = user.map(name => name.toLowerCase())
26     user = user.join(
27       data.email_separators[
28         Math.floor(Math.random() * data.email_separators.length)
29       ]
30     )
31     let email_domain = data.email_domains[
32       Math.floor(Math.random() * data.email_domains.length)
33     ]
34     let email = `${user}@${email_domain}`
35
36     let company_prefix =
37       Math.random() < .5 ?
38         data.company_prefixes[
39           Math.floor(Math.random() * data.company_prefixes.length)
40         ] :
41         data.family_names[
42           Math.floor(Math.random() * data.family_names.length)
43         ] + (
44           Math.random() < .5 ?
45           '' :
46           ' & ' + data.family_names[
47             Math.floor(Math.random() * data.family_names.length)
48           ]
49         )
50     let company_suffix = data.company_suffixes[
51       Math.floor(Math.random() * data.company_suffixes.length)
52     ]
53     if (company_suffix.charAt(0) === '&')
54        company_prefix = company_prefix.replaceAll(' & ', ', ')
55     let company = `${company_prefix} ${company_suffix}`
56
57     let expires = new XDate(env.now)
58     expires.addDays(1)
59
60     placeholder = {
61       given_names: given_name,
62       family_name,
63       email,
64       company: company,
65       expires: expires.getTime()
66     }
67     session.set_json('placeholder', placeholder)
68   }
69   return placeholder
70 }