Skip to content
Snippets Groups Projects
Commit 2aec81f8 authored by Pregmodder's avatar Pregmodder
Browse files

Merge branch 'reminder' into 'pregmod-master'

make reminder sytem more robust

See merge request pregmodfan/fc-pregmod!5953
parents a6bc22e3 b76225be
Branches
Tags
No related merge requests found
...@@ -27,26 +27,32 @@ App.Reminders.list = function({maxFuture = Number.POSITIVE_INFINITY, category = ...@@ -27,26 +27,32 @@ App.Reminders.list = function({maxFuture = Number.POSITIVE_INFINITY, category =
} }
/** /**
* @param {number} index * @param {string} c
* @return boolean
*/ */
let clearEntry = index => { V.reminders.splice(index, 1); }; let includedCategory = category === "all" ? () => true : c => c === category;
/**
* @param {{}} entry
*/
let clearEntry = entry => { V.reminders.splice(V.reminders.indexOf(entry), 1); };
// We only want to remove visible entries
function clearOverdue() { function clearOverdue() {
V.reminders = V.reminders.filter(e => e.week >= V.week); V.reminders = V.reminders.filter(e => e.week >= V.week && (e.week > V.week + maxFuture || !includedCategory(e.category)));
} }
function clearAll() { function clearAll() {
V.reminders = []; V.reminders = V.reminders.filter(e => e.week > V.week + maxFuture || !includedCategory(e.category));
} }
let r = ""; let r = "";
let overdue = 0; let overdue = 0, any = false;
const reminders = category === "all" ? V.reminders : V.reminders.filter(entry => entry.category === category); V.reminders.filter(e => e.week <= V.week + maxFuture && includedCategory(e.category))
.forEach(entry => {
reminders.filter(e => e.week <= V.week + maxFuture) any = true;
.forEach((entry, index) => {
let week; let week;
let classes = ""; let classes = "";
if (entry.week < V.week) { if (entry.week < V.week) {
...@@ -62,13 +68,15 @@ App.Reminders.list = function({maxFuture = Number.POSITIVE_INFINITY, category = ...@@ -62,13 +68,15 @@ App.Reminders.list = function({maxFuture = Number.POSITIVE_INFINITY, category =
} }
week = `in ${numberWithPluralOne(entry.week - V.week, 'week')}`; week = `in ${numberWithPluralOne(entry.week - V.week, 'week')}`;
} }
r += `<div>${entry.message} <span class="${classes}">${week}</span>. ${App.UI.link("Clear", clearEntry, [index], passage())}</div>`; r += `<div>${entry.message} <span class="${classes}">${week}</span>. ${App.UI.link("Clear", clearEntry, [entry], passage())}</div>`;
}); });
if (overdue > 0) { if (overdue > 0) {
r += `<div>${App.UI.link("Clear Overdue", clearOverdue, [], passage())}</div>`; r += `<div>${App.UI.link("Clear Overdue", clearOverdue, [], passage())}</div>`;
} }
r += `<div>${App.UI.link("Clear All", clearAll, [], passage())}</div>`; if (any) {
r += `<div>${App.UI.link("Clear All", clearAll, [], passage())}</div>`;
}
return r; return r;
}; };
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
<<= App.Reminders.list({maxFuture: 5})>> <<= App.Reminders.list({maxFuture: 5})>>
<<if $reminders.length > 0>> <<if $reminders.length > 0>>
[[Manage reminders|Manage Personal Affairs]] <div>[[Manage reminders|Manage Personal Affairs]]</div>
<</if>> <</if>>
<<if $seeFCNN == 1>> <<if $seeFCNN == 1>>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment