Big Mega Update 2 :) – Cycles, Flexible task timing, Automated testing, etc.#45
Conversation
* replaced gara-eidolon.webp. The old one had the saturation turned up compared to the 'official' image, and appeared to be AI-upscaled, giving it an unnecessary file size * replaced Break Narmer cycle icons with colorful versions * gave everything a pass with oxipng to save a few bytes
* better animation for collapsible sections and parent tasks * lighter background in light mode
(I know it's a lot. Don't be afraid to use the "hide task" buttons) * added support for multiply nested subtasks * parent tasks can now have info lines * removed `isParent` from task definitions. The presence of `subtasks` is what defines a parent task.
* Added weekly_zorba vendor
This will break existing save data, but it should prevent future breakages when updating major APP_VERSION.
* no more `isEightHourTask` * tasks can now specify a `period`, for how often they reset, and a `ref` for a reference time to count from * no more timer HTML in task definitions * `checklistData.notificationsSent` is now keyed by task ID instead of "notification ID", and valued with cycle number * shuffled some DOM structure around so that parent and non-parent tasks look more structurally similar * added `other_glast` and `other_eleanor` tasks * not done: Baro
fixed repeated notifications when refreshing the page
+ `loadAndInitializeApp` no longer starts the countdown interval. There's a separate `startCountdown` (and `stopCountdown`) function for that, for (hopefully) future ease of testing. + factored `loadData` out of `loadAndInitializeApp`
…for `other_` tasks) * factored out `calcTaskTimes` so that I can reuse `isAvailable` a bunch of places * locked checkbox for unvailable tasks (e.g. Baro) * schedule for unavailable task cycle skips current cycle because it's already passed * various minor code style cleanups
(e.g. Sortie, which resets at noon Eastern instead of midnight UTC) * simplifed the call signature of `populateSection` * removed redundant calls to `updateSectionControls` (`populateSection` already does that)
* fixed opening animation for menu * several animations are now disabled if user has `prefers-reduced-motion` set in their OS (menu open/close; light/dark theme switching; and collapse/expand for sections, parent tasks, and info lines)
…frame-tools#37) * added a "more info" dialog for tasks that need an extended explanation
+ cycle schedule columns can now specify a custom `align` to override `text-align` (defaults to `left` or `center` for cells with or without `icon`, respectively)
It seems to be unmaintained, and we can do HTML substitution with Vite env variables
this enables hot module replacement in dev mode, while still inlining it in production
* validate cycles.json * added cycles.schema.json * verify `order`s match in length * verify that cycles refer to defined tasks * verify unique task ids * validate `moreInfo.js`
* delete `manual-pages-deploy` (it's basically just a duplicate of `weekly-pages-deploy`) * rename `weekly-pages-deploy` to `pages-deploy` (it hasn't done automated weekly deployment in a long time) * automatically deploy pages on release publication * update actions versions to fix warnings about https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ * slightly better support for nektos/act in `release-assets`
|
I have not checked everything out yet, but wow what a long list of changes. Back at it again @AnSq ! This still pulls everything for a single file deployment, correct? |
|
Yep, single file release still works. You can check out |
|
On the topic of cyclic tasks, I also investigated Daily Marie and Daily and Weekly Acrithis. Marie's Perita resource (Lyroic Bridge/Ascaris Prime/Ren Hypercore) and Descendia resource (Ignia/Maphica) offerings are almost cyclic, but not quite. Her mods and Arcanes appear to be fully random. For a while I thought that Acrithis always offered a Forma Blueprint and Kuva, but I saw one week without the Forma. The rest of her weekly stock, as well as her daily Arcane and Captura, appear to be random. If anyone knows of any other regular cycles, please let me know. |
* added MR3 prereq to faction syndicates * clarified `daily_marie` task * added Scuttler Husks for Kuva to Acrithis * moved `iconURL` and `makeCycleIcon` to functions.js * spelling...
* reword `daily_marie` * use the current year for DST calculation * use millisecond constants in `formatCountdown` * remove unused test code * bump app version to 5.0 + bump game version to 42.0.11 (no changes)
|
SECURITY.md is in place just as a formality. I just added it to the changes along with the others because I saw the 4.0 in there and knew it needed to be changed as well. Looks good. I will merge this on Sunday and do a new release. Thank you so much for the changes! Great work and makes the tool even better for others! |
|
This is a great update! |
All of the changes in this PR are currently live at https://ansq.github.io/Warframe-Task-Checklist/
🆕 indicates changes I added since first opening this PR.
New Tasks
New Features
Enhancements
prefers-reduced-motionset in their OS. (Menu open/close; Light/dark theme switching; and Collapse/expand for sections, parent tasks, and info lines)Bug Fixes
Code Stuff
cycles.json. Most of it should be pretty self-explanatory, but you can also see the formal schema incycles.schema.json.tasks.jsonintasks.schema.jsonwith descriptions of the new properties I added to support the new features.moreInfo.js. (I was gonna put them intasks.js, but you can't do multiline strings in json, and it's a lot of HTML. It would have been too unwieldy.)other_tasks and DST calculations. The goal for now isn't to test everything.tasks.json,cycles.json, andmoreInfo.js. Makes use of JSON Schemas through Ajv.npm run testfor the terminal version, ornpm run test:uifor a web-based UI (probably at http://localhost:51204/__vitest__/) and included code coverage. (Code coverage can be misleading. Don't rely on it too much.)DATA_STORAGE_KEYfromAPP_VERSION. This will break existing save data, but it should prevent future breakages when updating majorAPP_VERSION. (1868f5c)critical.cssis now loaded with@importinindex.html.manual-pages-deploy(it's basically just a duplicate ofweekly-pages-deploy).weekly-pages-deploytopages-deploy(it hasn't done automated weekly deployment in a long time).github-pagesrepo environment to accept deployment from those tags. This is not something I can change with a pull request.)release-assets.4.0🆕5.0 inapp.js,package.jsonandSECURITY.md. (Personally, I question the need for us to have aSECURITY.mdat all, but it's there, so I'll fix it.)(4.0 is the version fromapp.jsbefore this PR)functions.jsconstants.jsDependencies
vite-plugin-html. (See above about@import.)