diff --git a/src/Mods/Reminder/reminder.js b/src/Mods/Reminder/reminder.js index fe1f0258cd8d3695d1ab842b31fa0e6d8530c912..f8675e215bcf8a7f1a9c21e97755e399af6082fb 100644 --- a/src/Mods/Reminder/reminder.js +++ b/src/Mods/Reminder/reminder.js @@ -1,93 +1,24 @@ -App.Reminders = class Reminders { - constructor() { - this.entries = []; - this.weeks = []; - this.active = []; - this.overdue = []; - } - - add(entry, week) { - if (entry.length > 0 && week.length > 0 && !isNaN(week)) { - if (week <= 0) { - this.overdue.push(`${entry}`); - } else { - this.entries.push(entry); - this.weeks.push(week); - this.active.push(`${entry} in ${numberWithPlural(week, 'week')}`); - } - } - } - - update() { - let _overdue = [], - _active = []; - - for (let i = 0; i < this.entries.length; i++) { - this.weeks[i]--; - if (this.weeks[i] > 0) { - _active.push(`${this.entries[i]} in ${this.weeks[i]} ${numberWithPlural(this.weeks[i], 'week')}`); - } else { - _overdue.push(this.entries[i]); - this.entries.slice(i, 1); - this.weeks.slice(i, 1); - } - } - this.active = _active; - this.overdue = _overdue; - } - - render(array) { - let t = ''; - - if (array.length > 0) { - t += `You have ${numberWithPluralOne(array.length, array === this.overdue ? 'overdue reminder' : 'reminder')}:`; - if (array === this.overdue) { - t += this.printOverdue(); - } else { - t += this.printActive(); - } - } - - return t; - } - - clear(array) { - array = []; - return array; - } - - printActive() { - let t = ''; - - for (let i = 0; i < this.active.length; i++) { - t += `<br><<print "${this.active[i]}">>`; - } - - return t; - } - - printOverdue() { - let t = ''; - - if (this.isPersonalAffairs()) { - for (let i = 0; i < this.overdue.length; i++) { - t += `<br><<print "${this.overdue[i]}">>`; - } - } else { - t += `<<print "${this.overdue}">>[[View reminders|Manage Personal Affairs]]`; - } - - return t; - } - - removeElement(array, index) { - // if (!array || !index) { - // return null; - // } - return `${App.UI.passageLink('Clear', 'Manage Personal Affairs', array.slice(index, 1))}`; - } +App.Reminders.add = function(entry, week) { + if (entry.length > 0 && week.length > 0 && !isNaN(week) && week > 0) { + V.reminders.entries.push(entry); + V.reminders.weeks.push(week); + V.reminders.text.push(`${entry} in ${numberWithPlural(week, 'week')}`); + } +}; - isPersonalAffairs() { - return passage() === 'Manage Personal Affairs'; - } +App.Reminders.update = function() { + let entries = V.reminders.entries, + weeks = V.reminders.weeks, + text = []; + + for (let i = 0; i < entries.length; i++) { + weeks[i]--; + if (weeks[i] > 0) { + text.push(`${entries[i]} in ${numberWithPluralOne(weeks[i], 'week')}`); + } else { + entries.splice(i, 1); + weeks.splice(i, 1); + } + } + V.reminders.text = text; }; diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 46c0b56c9446f4cd32418ad29e6e1e643c65021a..e2b71ac1b09698f4a936d29436e2196c906c6766 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -468,7 +468,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $REReductionCheckinIDs = []>> <<set $activeSlave = 0>> <<set $activeChild = 0>> -<<set $reminders = new App.Reminders()>> +<<set $reminders = {entries: [], weeks: [], text: []}>> <<set $boomerangSlave = 0, $boomerangWeeks = 0, $boomerangBuyer = 0>> diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw index ae5301aa6227f770d81a252b454ea28ab56f6eac..8772ff98127584e22dd581dd42e884a8fd3ebf25 100644 --- a/src/pregmod/managePersonalAffairs.tw +++ b/src/pregmod/managePersonalAffairs.tw @@ -218,16 +218,11 @@ Sclera: <br><br> -<<if $reminders.active.length == 0 && $reminders.overdue.length == 0>> +<<if $reminders.text.length == 0>> You do not have any reminders set. <<else>> - <<if $reminders.overdue.length > 0>> - <<= $reminders.render(overdue)>> - <br> - <</if>> - <<if $reminders.active.length > 0>> - <<= $reminders.render($reminders.active)>> - <</if>> + You have <<=numberWithPluralOne($reminders.text.length, "reminder")>> set: + <<print $reminders.text>> <</if>> <br> Remind me @@ -237,8 +232,11 @@ in weeks. [[Add|Manage Personal Affairs][$reminders.add($reminderEntry, $reminderWeek)]] <br> -<<if $reminders.active.length > 0 || $reminders.overdue.length > 0 || $cheatMode || $debugMode>> - [[Clear your reminders|Manage Personal Affairs][$reminders.clear($reminders.active), $reminders.clear($reminders.overdue)]] +<<if $reminders.text.length > 0 || $cheatMode || $debugMode>> + [[Clear your reminders|Manage Personal Affairs][$reminders = {entries: [], weeks: [], text: []}]] + /* TODO: <<link "Clear a reminder" "Manage Personal Affairs">> + <<include "Clear Reminder">> + <</link>> */ <</if>> <br><br> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index f759a90ce4528304e777ae744ee957a2c375e309..372acfa978f7e5f270ddff9f87684dec487daae1 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -153,7 +153,9 @@ <<set $weddingPlanned = 0>> <</if>> -<<set $reminders = new App.Reminders()>> +<<if ndef $reminders>> + <<set $reminders = {entries: [], weeks: [], text: []}>> +<</if>> <<if $releaseID < 1057>> <<if ndef $PC.name>> diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw index 1857744aec000525e169e00d76077b9ced7b264b..bb42d234b1265747e13e158c3bff96e7f59e18e9 100644 --- a/src/uncategorized/endWeek.tw +++ b/src/uncategorized/endWeek.tw @@ -43,8 +43,8 @@ s.lastWeeksRepExpenses = 0; })>> -<<if $reminders.active.length > 0>> - <<run $reminders.update()>> +<<if $reminders.text.length > 0>> + <<run App.Reminders.update()>> <</if>> <<if $organs.length > 0>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index 928259894d071b6219f56dcdeab37100d5cb9c84..9714f4b24f242567f938bfd970a4c296b1b915aa 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -80,19 +80,13 @@ <<include "Office Description">> [[Hide|Main][$seeDesk = 0]] <</if>> -<<if $reminders.overdue.length > 0>> - <br> +<<if $reminders.text.length > 0>> +<br> - <span class="yellow">/* TODO: this would be a good place to add a class "attention" or "attn" */ - <<= $reminders.render($reminders.overdue)>> - </span> -<</if>> -<<if $reminders.active.length > 0>> - <br> - - <<= $reminders.render($reminders.active)>> + You have <<=numberWithPluralOne($reminders.text.length, "reminder")>>: + <<print $reminders.text>> + <br><br> <</if>> -<br><br> <<if $seeFCNN == 1>> <<if $FCNNstation != 1 && $week >= 90>> <center>FCNN: <<print "FCNN service has been temporarily suspended. Please stand by.">> [[Hide|Main][$seeFCNN = 0]]</center>