*/
module.exports = (ctx, options) => {
const pageTitle = `${options.manager.pageTitle} - Topic Details`;
- const headElements = [];
+ const logoUrl = options.manager.logoUrl;
const navLinks = [
{
href: '..',
if (!ctx.subscriptions) {
ctx.subscriptions = [];
}
- return th.htmlTemplate(ctx, 2, pageTitle, headElements, navLinks, [
+
+ const htmlOptions = {
+ pageTitle,
+ logoUrl,
+ navLinks,
+ footerEntries,
+ };
+
+ const content = [
` <section class="topics">
<table>
<thead>`,
` </tbody>
</table>
</section>`,
+ ` <section class="history">
+ <p>Topic Publish History — ${ctx.publishCount} updates in the last ${ctx.publishSpan} days</p>
+ <img title="Topic Publish History" src="${ctx.params.topicId}/history.svg">
+ </section>`,
` <section class="subscriptions">
- <p>${ctx.subscriptions.length ? ctx.subscriptions.length : 'no'} subscription${(ctx.subscriptions.length === 1) ? '' : 's'}</p>
- <table>
+ <p>${ctx.subscriptions.length ? ctx.subscriptions.length : 'no'} subscription${(ctx.subscriptions.length === 1) ? '' : 's'}</p>`,
+ ...(ctx.subscriptions.length && [`
+ <label for="subscriptions-delivered">
+ Successful Deliveries of Latest Content
+ </label>
+ <progress id="subscriptions-delivered" max="${ctx.subscriptions.length}" value="${ctx.subscriptionsDelivered}">
+ ${ctx.subscriptionsDelivered} of ${ctx.subscriptions.length} (${Math.ceil(100 * ctx.subscriptions.length / ctx.subscriptionsDelivered)}%)
+ </progress>`] || []),
+ ` <table>
<thead>`,
th.renderSubscriptionRowHeader(),
` </thead>
` </tbody>
</table>
</section>`,
- ], footerEntries);
+ ];
+
+ return th.htmlPage(2, ctx, htmlOptions, content);
};
\ No newline at end of file