From: Nick Downing Date: Sun, 23 Jan 2022 02:03:41 +0000 (+1100) Subject: Use globals object in database rather than /_config/globals.json everywhere X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?p=ndcode_site.git;a=commitdiff_plain;h=84ac02f6a75f6fa3bc4cc538ad1ddbf0e2c119f9 Use globals object in database rather than /_config/globals.json everywhere --- diff --git a/_lib/navbar.jst b/_lib/navbar.jst index d3bad0c..a9e511a 100644 --- a/_lib/navbar.jst +++ b/_lib/navbar.jst @@ -3,7 +3,6 @@ let XDate = require('xdate') return async (env, head, body, scripts) => { //let cart = await _require('/online_store/cart.jst') - let globals = await env.site.get_json('/_config/globals.json') //let icon_cart_small = await env.site.get_min_svg('/_svg/icon_cart_small.svg') let icon_search_mono = await env.site.get_min_svg('/_svg/icon_search_mono.svg') let logo_large = await env.site.get_min_svg('/_svg/logo_large.svg') @@ -23,13 +22,18 @@ return async (env, head, body, scripts) => { let dir = index === -1 ? '' : env.parsed_url.pathname.slice(1, index) title { - _out.push( - globals.site_title + ': ' + ( + let transaction = await env.site.database.Transaction() + try { + let globals = await (await transaction.get({})).get('globals') + ;`${await globals.get_json('site_title')}: ${ dir.length === 0 ? - 'Home' : - menu.entries[menu.index[dir]].name - ) - ) + 'Home' : + menu.entries[menu.index[dir]].name + }` + } + finally { + transaction.rollback() + } } await head(_out) @@ -189,7 +193,16 @@ return async (env, head, body, scripts) => { p {'Example code fragments embedded within the text are placed in the public domain unless otherwise noted.'} - p {`Copyright © ${new XDate().getUTCFullYear()} ${globals.copyright}.`} + p { + let transaction = await env.site.database.Transaction() + try { + let globals = await (await transaction.get({})).get('globals') + ;`Copyright © ${new XDate().getUTCFullYear()} ${await globals.get('copyright')}.` + } + finally { + transaction.rollback() + } + } } } diff --git a/api/account/password_reset.json.jst b/api/account/password_reset.json.jst index 908bf75..ff6aed9 100644 --- a/api/account/password_reset.json.jst +++ b/api/account/password_reset.json.jst @@ -2,7 +2,6 @@ let crypto = require('crypto') let XDate = require('xdate') return async env => { - let globals = await env.site.get_json('/_config/globals.json') let nodemailer_noreply = await env.site.get_nodemailer( '/_config/nodemailer_noreply.json' ) @@ -50,6 +49,11 @@ return async env => { {password, link_code, expires: expires.getTime()} ) + let globals = await (await transaction.get({})).get('globals') + let site_url = await globals.get_json('site_url') + let noreply_from = await globals.get_json('noreply_from') + let noreply_signature = await globals.get_json('noreply_signature') + let given_names = await account.get_json('given_names', '') let family_name = await account.get_json('family_name', '') let name = @@ -57,7 +61,7 @@ return async env => { await nodemailer_noreply.sendMail( { - from: globals.noreply_from, + from: noreply_from, to: `${name} <${email}>`, subject: 'Password reset', text: `Dear ${given_names}, @@ -65,12 +69,12 @@ return async env => { We have received a request to reset the account password for your email address. If this request is valid, please verify the new password by visiting the below link: -${globals.site_url}/my_account/verify_password/index.html?email=${encodeURIComponent(email)}&link_code=${encodeURIComponent(link_code)} +${site_url}/my_account/verify_password/index.html?email=${encodeURIComponent(email)}&link_code=${encodeURIComponent(link_code)} The link is valid for 24 hours. Thanks, -${globals.noreply_signature} +${noreply_signature} ` } ) diff --git a/api/account/sign_in.json.jst b/api/account/sign_in.json.jst index ecd0f4e..ab7f4b8 100644 --- a/api/account/sign_in.json.jst +++ b/api/account/sign_in.json.jst @@ -1,8 +1,4 @@ return async env => { - let globals = await env.site.get_json('/_config/globals.json') - let nodemailer_noreply = await env.site.get_nodemailer( - '/_config/nodemailer_noreply.json' - ) let post_request = await _require('/_lib/post_request.jst') let session_cookie = await _require('/_lib/session_cookie.jst') let Problem = await _require('/_lib/Problem.jst') diff --git a/api/account/sign_out.json.jst b/api/account/sign_out.json.jst index f5fda46..120e568 100644 --- a/api/account/sign_out.json.jst +++ b/api/account/sign_out.json.jst @@ -1,8 +1,4 @@ return async env => { - let globals = await env.site.get_json('/_config/globals.json') - let nodemailer_noreply = await env.site.get_nodemailer( - '/_config/nodemailer_noreply.json' - ) let post_request = await _require('/_lib/post_request.jst') let session_cookie = await _require('/_lib/session_cookie.jst') let Problem = await _require('/_lib/Problem.jst') diff --git a/api/account/sign_up/send_email_verification_link.json.jst b/api/account/sign_up/send_email_verification_link.json.jst index f4cb176..c682c2c 100644 --- a/api/account/sign_up/send_email_verification_link.json.jst +++ b/api/account/sign_up/send_email_verification_link.json.jst @@ -2,7 +2,6 @@ let crypto = require('crypto') let XDate = require('xdate') return async env => { - let globals = await env.site.get_json('/_config/globals.json') let nodemailer_noreply = await env.site.get_nodemailer( '/_config/nodemailer_noreply.json' ) @@ -56,6 +55,11 @@ return async env => { {link_code, expires: expires.getTime()} ) + let globals = await (await transaction.get({})).get('globals') + let site_url = await globals.get_json('site_url') + let noreply_from = await globals.get_json('noreply_from') + let noreply_signature = await globals.get_json('noreply_signature') + let given_names = await account.get_json('given_names', '') let family_name = await account.get_json('family_name', '') let name = @@ -63,7 +67,7 @@ return async env => { await nodemailer_noreply.sendMail( { - from: globals.noreply_from, + from: noreply_from, to: `${name} <${email}>`, subject: 'Email address verification', text: `Dear ${given_names}, @@ -71,12 +75,12 @@ return async env => { We have received a request to sign up using your email address. If this request is valid, please verify your email address by visiting the below link: -${globals.site_url}/my_account/verify_email/index.html?email=${encodeURIComponent(email)}&link_code=${encodeURIComponent(link_code)} +${site_url}/my_account/verify_email/index.html?email=${encodeURIComponent(email)}&link_code=${encodeURIComponent(link_code)} The link is valid for 24 hours. Thanks, -${globals.noreply_signature} +${noreply_signature} ` } ) diff --git a/api/contact/send_enquiry.json.jst b/api/contact/send_enquiry.json.jst index d6b9d80..04ac3b0 100644 --- a/api/contact/send_enquiry.json.jst +++ b/api/contact/send_enquiry.json.jst @@ -2,7 +2,6 @@ let crypto = require('crypto') let XDate = require('xdate') return async env => { - let globals = await env.site.get_json('/_config/globals.json') let nodemailer_contact = await env.site.get_nodemailer( '/_config/nodemailer_contact.json' ) @@ -35,9 +34,15 @@ return async env => { ) let transaction = await env.site.database.Transaction() + let contact_from, contact_to try { // initialize env.session_key, set cookie in env.response session_cookie(env, transaction) + + let globals = await (await transaction.get({})).get('globals') + contact_from = await globals.get_json('contact_from') + contact_to = await globals.get_json('contact_to') + await transaction.commit() } catch (error) { @@ -55,10 +60,10 @@ return async env => { 'Enquiry' await nodemailer_contact.sendMail( { - from: globals.contact_from, - to: globals.contact_to, + from: contact_from, + to: contact_to, replyTo: `${name} <${details.email}>`, - subject: subject, + subject, text: details.message } ) diff --git a/api/feedback.json.jst b/api/feedback.json.jst index 400c284..8d6f201 100644 --- a/api/feedback.json.jst +++ b/api/feedback.json.jst @@ -1,7 +1,6 @@ let XDate = require('xdate') return async env => { - let globals = await env.site.get_json('/_config/globals.json') let nodemailer_feedback = await env.site.get_nodemailer( '/_config/nodemailer_feedback.json' ) @@ -24,9 +23,15 @@ return async env => { ) let transaction = await env.site.database.Transaction() + let feedback_from, feedback_to try { // initialize env.session_key, set cookie in env.response await session_cookie(env, transaction) + + let globals = await (await transaction.get({})).get('globals') + feedback_from = await globals.get_json('feedback_from') + feedback_to = await globals.get_json('feedback_to') + await transaction.commit() } catch (error) { @@ -36,8 +41,8 @@ return async env => { await nodemailer_feedback.sendMail( { - from: globals.feedback_from, - to: globals.feedback_to, + from: feedback_from, + to: feedback_to, subject: 'Page: ' + page, text: message }