// 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 }); };