0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00
ghost/core/frontend/services/theme-engine/middleware/update-local-template-options.js
Kevin Ansfield cabf78e938 Cleaned up customThemeSettings labs flag
closes https://github.com/TryGhost/Team/issues/1164

- `customThemeSettings` feature is GA so any conditionals can be cleaned up
- removed conditional loading of custom theme settings and associated API routes
- removed event trigger for reloading custom theme settings when the feature flag is toggled
- removed flag from labs GA list
2022-01-03 17:45:25 +00:00

52 lines
1.9 KiB
JavaScript

const _ = require('lodash');
const hbs = require('../engine');
const urlUtils = require('../../../../shared/url-utils');
const customThemeSettingsCache = require('../../../../shared/custom-theme-settings-cache');
const preview = require('../preview');
function updateLocalTemplateOptions(req, res, next) {
const localTemplateOptions = hbs.getLocalTemplateOptions(res.locals);
// adjust @site.url for http/https based on the incoming request
const siteData = {
url: urlUtils.urlFor('home', {secure: req.secure, trailingSlash: false}, true)
};
// @TODO: it would be nicer if this was proper middleware somehow...
const previewData = preview.handle(req, Object.keys(customThemeSettingsCache.getAll()));
// strip custom off of preview data so it doesn't get merged into @site
const customData = previewData.custom;
delete previewData.custom;
// update site data with any preview values from the request
Object.assign(siteData, previewData);
const member = req.member ? {
uuid: req.member.uuid,
email: req.member.email,
name: req.member.name,
firstname: req.member.name && req.member.name.split(' ')[0],
avatar_image: req.member.avatar_image,
subscriptions: req.member.subscriptions && req.member.subscriptions.map((sub) => {
return Object.assign({}, sub, {
default_payment_card_last4: sub.default_payment_card_last4 || '****'
});
}),
paid: req.member.status !== 'free'
} : null;
hbs.updateLocalTemplateOptions(res.locals, _.merge({}, localTemplateOptions, {
data: {
member: member,
site: siteData,
custom: customData,
// @deprecated: a gscan warning for @blog was added before 3.0 which replaced it with @site
blog: siteData
}
}));
next();
}
module.exports = updateLocalTemplateOptions;