Save worktree changes

This commit is contained in:
lzstealth committed 2026-07-25 02:29:19 +01:00
1 parent 8d3b7d557b
commit db9d718cd8
170 files changed
+11719 -3414

No files matched your search

@@ -0,0 +1,27 @@
const { renderView } = require('../../../view');
function buildDefaultRssFeed() {
return {
id: null,
name: '',
feedUrl: '',
updateIntervalValue: 60,
updateIntervalUnit: 'minutes',
itemLimit: 1
};
}
module.exports = function renderRssFeedFormPage(rssFeed, mode, message, currentUser) {
const isEdit = mode === 'edit';
const viewRssFeed = Object.assign(buildDefaultRssFeed(), rssFeed || {});
return renderView(isEdit ? 'data-sources/rss-feeds/edit' : 'data-sources/rss-feeds/add', {
title: isEdit ? 'Edit RSS feed' : 'Add RSS feed',
active: 'rss-feeds',
message: message,
currentUser: currentUser || null,
rssFeed: viewRssFeed,
pulledItems: viewRssFeed.pulledItems || [],
pullError: viewRssFeed.pullError || ''
});
};
@@ -0,0 +1,13 @@
const renderRssFeedFormPage = require('./add');
module.exports = function renderRssFeedEditPage(rssFeed, data, message, currentUser) {
const viewData = Object.assign({
pulledItems: [],
pullError: ''
}, data || {});
return renderRssFeedFormPage(Object.assign({}, rssFeed, {
pulledItems: viewData.pulledItems,
pullError: viewData.pullError
}), 'edit', message, currentUser);
};
@@ -0,0 +1,32 @@
const { renderView } = require('../../../view');
function formatIntervalLabel(interval, unit) {
const value = Math.max(1, Number(interval) || 0);
const normalizedUnit = String(unit || 'minutes').trim().toLowerCase() === 'seconds' ? 'seconds' : 'minutes';
if (normalizedUnit === 'seconds') {
return value === 1 ? 'Every second' : `Every ${value} seconds`;
}
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
});
};