Publish Docker Image / build-and-push (./build/Dockerfile, git.lzstealth.com/lzstealth/pulse-signage-web, web) (push) Successful in 1m12s
Publish Docker Image / build-and-push (./build/Dockerfile.player, git.lzstealth.com/lzstealth/pulse-signage-player, player) (push) Successful in 30s
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
// RSS feed list page renderer.
|
|
|
|
const { renderView } = require('../../../view');
|
|
|
|
function formatIntervalLabel(interval, unit) {
|
|
const value = Math.max(1, Number(interval) || 0);
|
|
const normalizedUnit = String(unit || 'minutes').trim().toLowerCase();
|
|
if (normalizedUnit === 'seconds') {
|
|
return value === 1 ? 'Every second' : `Every ${value} seconds`;
|
|
}
|
|
if (normalizedUnit === 'hours') {
|
|
return value === 1 ? 'Every hour' : `Every ${value} hours`;
|
|
}
|
|
return value === 1 ? 'Every minute' : `Every ${value} minutes`;
|
|
}
|
|
|
|
function formatItemLabel(count) {
|
|
const value = Math.max(1, Number(count) || 0);
|
|
return value === 1 ? 'Latest item' : `Latest ${value} items`;
|
|
}
|
|
|
|
module.exports = function renderRssFeedsPage(data, message, currentUser) {
|
|
const rssFeeds = (data.rssFeeds || []).map(function (rssFeed) {
|
|
return Object.assign({}, rssFeed, {
|
|
intervalLabel: formatIntervalLabel(rssFeed.update_interval_value, rssFeed.update_interval_unit),
|
|
itemLabel: formatItemLabel(rssFeed.item_limit)
|
|
});
|
|
});
|
|
|
|
return renderView('data-sources/rss-feeds/list', {
|
|
title: 'RSS feeds',
|
|
active: 'rss-feeds',
|
|
message: message,
|
|
currentUser: currentUser || null,
|
|
rssFeeds: rssFeeds,
|
|
pagination: data.pagination || null
|
|
});
|
|
}; |