Browse Source

factoring evolution down from Sites to Base

pull/2/head
Rob Colbert 2 years ago
parent
commit
18f49c842a
  1. 1
      .vscode/launch.json
  2. 24
      app/views/components/library.pug
  3. 10
      app/views/components/page-sidebar.pug
  4. 2
      app/views/components/social-card/facebook.pug
  5. 9
      app/views/newsroom/components/feed-entry-list-item.pug
  6. 6
      config/limiter.js
  7. 34
      lib/site-platform.js

1
.vscode/launch.json

@ -15,6 +15,7 @@
"console": "integratedTerminal",
"env": {
"HTTP_BIND_PORT": "3010",
"HTTPS_ENABLE": "enabled",
"HTTPS_BIND_PORT": "3410",
}
},

24
app/views/components/library.pug

@ -10,6 +10,30 @@ include section-title
return (value < 1000) ? numeral(value).format('0,0') : numeral(value).format('0,0.0a');
}
function formatBitRate (value) {
if ((value !== 0) && !value) { return '---'; }
return numeral(value).format('0,0.0ib').slice(0, -2) + 'bps';
}
function formatDataSize (value) {
if ((value !== 0) && !value) { return '---'; }
return numeral(value).format('0,0.0b');
}
function formatTimestamp (value, withFractional = false) {
if (value !== 0 && !value) {
return withFractional ? '-:--:--.---' : '-:--:--';
}
return numeral(value).format(withFractional ? 'h:mm:ss.sss' : 'h:mm:ss');
}
function formatDuration (value) {
let duration = formatTimestamp(value);
if (duration.startsWith('0:')) { duration = duration.slice(2); }
if (duration.startsWith('0')) { duration = duration.slice(1); }
return duration;
}
function displayIntegerValue (value) {
return numeral(value).format(value > 1000 ? '0,0.0a' : '0,0');
}

10
app/views/components/page-sidebar.pug

@ -1,4 +1,5 @@
include ../announcement/components/announcement
include ../newsroom/components/feed-entry-list-item
mixin renderPageSidebar ( )
if Array.isArray(announcements) && (announcements.length > 0)
@ -17,14 +18,7 @@ mixin renderPageSidebar ( )
ul.uk-list
each entry in newsfeed.entries
li
div
a(href= entry.link, target="_blank").uk-link-reset= entry.title
.uk-text-small
div(uk-grid).uk-grid-small
.uk-width-expand
a(href= entry.feed.link, target="_blank").uk-link-reset= entry.feed.title
.uk-width-auto
div= moment(entry.published).fromNow()
+renderNewsroomFeedEntryListItem(entry)
.uk-margin
+renderSectionTitle('Widget', {

2
app/views/components/social-card/facebook.pug

@ -2,7 +2,7 @@ block facebook-card
meta(property='og:site_name', content= site.name)
meta(property='og:type', content='website')
meta(property='og:image', content= `https://${site.domain}/img/social-cards/${site.domainKey}.png?v=${pkg.version}`)
meta(property='og:url', content= `https://${site.domain}${dtp.request.url}`)
meta(property='og:url', content= `https://${site.domain}${request.url}`)
meta(property='og:title', content= pageTitle || site.name)
meta(property='og:description', content= pageDescription || site.description)
meta(property='og:image:alt', content= `${site.name} | ${site.description}`)

9
app/views/newsroom/components/feed-entry-list-item.pug

@ -0,0 +1,9 @@
mixin renderNewsroomFeedEntryListItem (entry)
.uk-text-bold
a(href= entry.link, target="_blank").uk-link-reset= entry.title
.uk-text-small
div(uk-grid).uk-grid-small
.uk-width-expand
a(href= entry.feed.link, target="_blank").uk-link-reset= entry.feed.title
.uk-width-auto
div= moment(entry.published).fromNow()

6
config/limiter.js

@ -117,6 +117,9 @@ module.exports = {
},
},
/*
* CommentController
*/
comment: {
deleteComment: {
total: 1,
@ -305,6 +308,9 @@ module.exports = {
},
},
/*
* WelcomeController
*/
welcome: {
total: 12,
expire: ONE_MINUTE,

34
lib/site-platform.js

@ -341,9 +341,7 @@ module.exports.startWebServer = async (dtp) => {
module.app.use(async (req, res, next) => {
const { cache: cacheService } = dtp.services;
try {
res.locals.dtp = {
request: req,
};
res.locals.request = req;
const settingsKey = `settings:${dtp.config.site.domainKey}:site`;
res.locals.site = Object.assign({ }, dtp.config.site);
@ -359,6 +357,16 @@ module.exports.startWebServer = async (dtp) => {
}
});
/*
* Call out to application to register their custom middleware at the right
* point in the processing chain.
*/
module.log.debug('typeof dtp.config.registerMiddleware', { type: (typeof dtp.config.registerMiddleware) });
if (dtp.config && (typeof dtp.config.registerMiddleware === 'function')) {
module.log.info('registering custom application middleware');
await dtp.config.registerMiddleware(dtp, module.app);
}
/*
* System Init
*/
@ -382,12 +390,7 @@ module.exports.startWebServer = async (dtp) => {
if (process.env.HTTP_ENABLE === 'enabled') {
if (process.env.HTTP_REDIRECT_SSL === 'enabled') {
module.log.info('creating HTTP SSL redirect app');
module.redirectApp = express();
module.redirectApp.use((req, res) => {
module.log.info('redirecting to SSL', { host: req.host, url: req.url });
res.redirect(`https://${process.env.DTP_SITE_DOMAIN}${req.url}`);
});
await module.createSslRedirectApp(dtp);
await module.createHttpServer(dtp, module.redirectApp);
} else {
await module.createHttpServer(dtp, module.app);
@ -434,6 +437,19 @@ module.createHttpsServer = async (dtp, app) => {
return module.https;
};
module.createSslRedirectApp = async (/* dtp */) => {
module.log.info('creating HTTP SSL redirect app');
module.redirectApp = express();
module.redirectApp.use((req, res) => {
module.log.info('redirecting to SSL', { host: req.host, url: req.url });
res.redirect(`https://${process.env.DTP_SITE_DOMAIN}${req.url}`);
});
return module.redirectApp;
};
module.startHttpServer = async (dtp, server, config) => {
return new Promise((resolve, reject) => {
module.log.info('starting HTTP server', { port: config.port, bind: config.address });

Loading…
Cancel
Save