* 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
* rename hasAccess to canJoin for challenges
This is so the function won't be used accidentally for other
purposes, since hasAccess could be misinterpretted.
* add isLeader function for challenges
* allow challenge leader to join/modify/end challenge when they're not in the private group it's in
* delete duplicate test
* clarify title of existing tests
* add tests and adjust existing tests to reduce privileges of test users
* fix lint errors
* remove pointless isLeader check (it's checked in canJoin)
* new inbox client
* add tests for sendPrivateMessage returning the message
* update DELETE user message tests
* port v3 GET-inbox_messages
* use v4 delete message route
* sendPrivateMessage: return sent message
* fix
* fix(groups): correct timing on updating member quantities
* fix(groups): don't run group cancellation check if we're in invite flow
* fix(groups): update leader when memberCount is 1
* fix(groups): move leader update back--unrelated to group plans fix
* 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
* Added mute end date
* Added indefinite mute for users using slurs
* Fixed user reload. Added no longer muted message. Added format for date
* Fixed lint
* correct curl parameter (-X for request method; -x for proxy information)
* fix typo in error message
* fix mistakes in apidocs for allocating Stat Points
* WIP(groups): add shared completion prop
Also fix an issue where the Needs Approval toggle would not read/save
correctly.
* fix(groups): save group options on task create
Also, correct count of assigned members when viewing user is among
assignments
* fix(groups): display correct messages in two places
* fix(tasks): eliminate console error related to filtering
Also localize a group plans string
* WIP(groups): implement single completion for approval workflow
* WIP(groups): Add shared completion handling to no-approval-needed flow
* WIP(groups): cover approval flow case for all-assigned
Also save new field on initial task creation
* fix(tasks): use default sharedCompletion value when creating tasks
* WIP(tests): non-working draft test
* Added completed todo to group query
* WIP(group-tasks): fix bugs, add tests
* refactor(group-tasks): deleteMany op, add more tests
* refactor(group-tasks): move shared completion handling to lib
* WIP(group-tasks): broken refactor
* WIP(group-tasks): await all the things
* Turned complete master task to save
* WIP(group-tasks): show completed
* fix(filtering): don't try to filter if no list is passed
* refactor(group-tasks): load completed to-dos on demand, not at start
* fix(group-tasks): don't double up on repeat visits
* fix(group-tasks): include brief explanation in dropdown
* fix(group-tasks): improve wording some more
* prints first error message only
* update signup error messages, missing password not working (wip)
* remove alerts, show notEmpty, first error only per param, update unit test
* move changes to client side