* Fix: moved debuffPotions from vue component
- Move logic of choosing proper debuf potion from vue component to website commons
- introduce new function to get debuffSpellItems
* Fix: move debuffPotions to server
* Refactoring: move setting of debuff potion to func
* Fix: sanity
* Refactoring & Tests:
- Create test case for get and set DebuffPotionItems functions
- Fix setDebuffPotionItems function to not create duplicated debuff items
- Make debuff potion type of items unpinnable
- Move list of debuffs to constant to reuse it in tests and functions
* Fix: typo in test describe
* Fix: translation of unpin
* Fix: setDebuffPotionItems on cron buffs reset
* Fix: use full path for debuff potions
* Fix: Reset negative quest scrolls number to zero on purchase(gem)
* Refactor: rename website/common/script/ops/buy/buyQuest.js to website/common/script/ops/buy/buyQuestGold.js and update related files
* Test: add two tests related to negative quest scrolls
* fix(teams): no hover bg change for noninteractive checkboxes
* feat(teams): send notification to managers on task claim
Also fix client unit test broken by prev commit
* feat(groups): don't penalize for tasks assigned since last activity
* fix(tests): actually fix client unit
* fix(teams): improve task styles
* fix(teams): let people other than leader see relevant approvals
Also more style fixes
* fix(approvals): better filtering and task headings for approval data
* fix(test): correct test expectations for new GET /approvals behavior
* fix(groups): style tweaks
* different border for group and normal tasks
* fix(teams): remove extra click for claiming
* fix(teams): leaders & managers can check off approval-required tasks
* fix(teams): don't notify user of own claim
* fix group task margin and z-index on hover
* fix(menu): sporadic error in top bar
* fix(teams): more approval header and footer adjustments
* fix(tests): adjust expectations for self-approval
* fix(teams): address PR comments
* refactor(timestamps): date user activity on authenticated requests
* refactor(timestamps): update local user instead of direct db update
* Fix: reset streak for habits after rebirth
- Modify current test of reseting streaks
- Add new if branch for task with "habit" type
* Fix: reset habits by another keys (counterDown/counterUp):
- Fix test for correct way of reseting habits
- Use another keys for reseting habits
* feat(content): Hourglass Quest
* fix(hourglasses): NaN from undefined
* fix(quests): sanity check for negative scrolls
* fix(hourglasses): don't show quantity selection for binary items
* fix(route): validate number, use body not params
* test(timetrav): add quest tests
* fix(purchasing): more number validation
* test(purchasing): add error cases
Also refactor NaN check and create client mixin
* fix(purchasing): cover "purchase" cases
* wip: define items as mixed objects
* add default owned gear
* mark modified
* more mark modified
* more mark modified
* more mark modified
* more mark modified
* fix common tests
* fix common tests
* update mongoose
* add itemsUtils
* use new util function in hall controller
* add tests for items utils
* update website/server to mark all items as modified
* start updating common code
* update login incentives
* update unlock
* remove changes to package-lock.json
* remove changes to package.json
* remove null/undefined entries from pinnedItems when an item is toggled - more inner checks + test
* drawer: fix when there isn't a page available
* rollback cleaning up pinnedEntries on item-toggle
* remove "re-setting" pinnedItems
* remove the filter
* If user's cron will happen later today, start the task yesterday.
* Added default dayStart to taskDefaults.
* Removed the need to call shouldDo twice to calculate nextDue.
* Revert "Removed the need to call shouldDo twice to calculate nextDue."
This reverts commit e1467f2fc33cfb11e6a4fc667460df6a48b69d45.
* Removed defaults from taskDefault arguments.
* Got user from $store in copyAsTodoModal.vue.
* Fixed tests for taskDefaults to include mock user.
* Fix shouldDo tests when run in GMT timezone.
* Added test to taskDefault; added utcOffset to taskDefault.
* Replaced utcOffset with zone.
* Removed erroneous import.
* Animal Ears purchasable with Gold if lost in Death
* remove ears from pinned items when set is bought
* standardise css and error handling for gems and coins
* revert accidental new line
* shared model for chat and inbox
* disable inbox schema
* inbox: use separate model
* remove old code that used group.chat
* add back chat field (not used) and remove old tests
* remove inbox exclusions when loading user
* add GET /api/v3/inbox/messages
* add comment
* implement DELETE /inbox/messages/:messageid in v4
* implement GET /inbox/messages in v4 and update tests
* implement DELETE /api/v4/inbox/clear
* fix url
* fix doc
* update /export/inbox.html
* update other data exports
* add back messages in user schema
* add user.toJSONWithInbox
* add compativility until migration is done
* more compatibility
* fix tojson called twice
* add compatibility methods
* fix common tests
* fix v4 integration tests
* v3 get user -> with inbox
* start to fix tests
* fix v3 integration tests
* wip
* wip, client use new route
* update tests for members/send-private-message
* tests for get user in v4
* add tests for DELETE /inbox/messages/:messageId
* add tests for DELETE /inbox/clear in v4
* update docs
* fix tests
* initial migration
* fix migration
* fix migration
* migration fixes
* migrate api.enterCouponCode
* migrate api.castSpell
* migrate reset, reroll, rebirth
* add routes to v4 version
* fix tests
* fixes
* api.updateUser
* remove .only
* get user -> userLib
* refactor inbox.vue to work with new data model
* fix return message when messaging yourself
* wip fix bug with new conversation
* wip
* fix remaining ui issues
* move api.registerLocal, fixes
* keep only v3 version of GET /inbox/messages
* WIP(analytics): add / improve tracking
* fix(groups): revert attempt at tracking on group model
* fix(analytics): track questing based on user data
* each buy-operation now has a getItemType method - typo getItemKey - removed unneeded overrides
* fixing typos in comments. yes, I am that kind of nerd
* replacing push-notify with node-apn in deps and in pushNotifications.js
* updating calling code and tests to use node-apn
* updating APN configs to new format
* migrating team ID and key ID to config.json
* update code to use env variables and add correct topic
* initial refactor
* add scoredUp and scoredDown values for habits history entries, one entry per habit per day
* fix lint and add initial migration
* update old test
* remove scoreNotes
* dry run for migration
* migration fixes
* update migration and remove old test
* fix
* add challenges migration (read only)
* fix challenges migration
* handle custom day start
* update tasks in migration
* scoring: support cds
* add new test
* removing duplicate translation key
* fixing typos
* extracting quest prerequisite check. adding check for previous quest completion, if required
* fixing (undoing) static change, adding tests
* more typos
* correcting test failures
* honoring quest prerequisites in quest invite API call. updating format of il8n string replacement arg
* no longer using apiError, use translate method instead (msg key was not defined)
* adding @apiError to docblock as requested in issue
* removing checks on quest invite method. small window of opportunity/low risk