* WIP(groups): quickish wins
* WIP(groups): two quick wins
1. Don't show task creation button if user is not leader or manager
2. Don't require JS confirm() for approving tasks
* fix(group-plans): allow delete from options button
* fix(group-plans): update tasksOrder when task deleted
* fix(group-tasks): dismiss notification when user takes action
* refactor(tasks): DRY out create button styling
* fix(group-tasks): sync after claiming/unclaiming
* fix(claiming): better sync and notif handling
* fix(tasks): force sync instead of explicitly clearing notif
* fix(tasks): reposition task creation button
* fix(group-tasks): default to single completion
* fix(group-tasks): move completion condition field above approval switch
* fix(group-tasks): todo validation error and approval notif dismissal
* fix(group-tasks): default single completion on client
* fix(group-tasks): move completion condition up more
* fix(group-tasks): maintain client-side user assignment list
* fix(group-tasks): remove approval notifications when task deleted
* fix(group-tasks): send assigned task to top of task list
* fix(group-tasks): remove useless tag filter dropdown
* feat(group-tasks): notify user of assigned task
* fix(group-tasks): don't allow approval of tasks w/ no approval request
* fix(tests): adjust expectations
* fix(group-tasks): more sensible action on assignment notif click
* WIP(groups): quickish wins
* WIP(groups): two quick wins
1. Don't show task creation button if user is not leader or manager
2. Don't require JS confirm() for approving tasks
* fix(group-plans): allow delete from options button
* fix(group-plans): update tasksOrder when task deleted
* fix(group-tasks): dismiss notification when user takes action
* refactor(tasks): DRY out create button styling
* fix(group-tasks): sync after claiming/unclaiming
* 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
* Prevent progress being cleared when quest ends
changing group tests to make sure it keeps user's progress
fix and remove .only() from tests
* fix tests and check null case for clearing up user's quest without resetting progress
Disappearing input fields
Text replacement in @mentions
UUID visibility in profiles
Purple dot for @mentioned usernames
TypeError preventing RYA
Group Plan member list error
* add hasCancelled method for group/user, prevent cancelling a subscription twice
* wip
* paypal: do not cancel a subscription twice
* make sure hasCancelled and hasNotCancelled return a boolean result
* Change update username API call
The call no longer requires a password and also validates the username.
* Implement API call to verify username without setting it
* Improve coding style
* Apply username verification to registration
* Update error messages
* Validate display names.
* Fix API early Stat Point allocation (#10680)
* Refactor hasClass check to common so it can be used in shared & server-side code
* Check that user has selected class before allocating stat points
* chore(event): end Ember Hatching Potions
* chore(analytics): reenable navigation tracking
* update bcrypt
* Point achievement modal links to main site (#10709)
* Animal ears after death (#10691)
* 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
* fix client tests
* Reduce margin-bottom of checklist-item from 10px to -3px. (#10684)
* chore(i18n): update locales
* 4.61.1
* feat(content): Subscriber Items and Magic Potions
* chore(sprites): compile
* chore(i18n): update locales
* 4.62.0
* Display notification for users to confirm their username
* fix typo
* WIP(usernames): Changes to address #10694
* WIP(usernames): Further changes for #10694
* fix(usernames): don't show spurious headings
* Change verify username notification to new version
* Improve feedback for invalid usernames
* Allow user to set their username again to confirm it
* Improve validation display for usernames
* Temporarily move display name validation outside of schema
* Improve rendering banner about sleeping in the inn
See #10695
* Display settings in one column
* Position inn banner when window is resized
* Update inn banner handling
* Fix banner offset on initial load
* Fix minor issues.
* Issue: 10660 - Fixed. Changed default to Please Enter A Value (#10718)
* Issue: 10660 - Fixed. Changed default to Please Enter A Value
* Issue: 10660 - Fixed/revision 2 Changed default to Enter A Value
* chore(news): Bailey announcements
* chore(i18n): update locales
* 4.62.1
* adjust wiki link for usernameInfo string
https://github.com/HabitRPG/habitica-private/issues/7#issuecomment-425405425
* raise coverage for tasks api calls (#10029)
* - updates a group task - approval is required
- updates a group task with checklist
* add expect to test the new checklist length
* - moves tasks to a specified position out of length
* remove unused line
* website getter tasks tests
* re-add sanitizeUserChallengeTask
* change config.json.example variable to be a string not a boolean
* fix tests - pick the text / up/down props too
* fix test - remove changes on text/up/down - revert sanitize condition - revert sanitization props
* Change update username API call
The call no longer requires a password and also validates the username.
* feat(content): Subscriber Items and Magic Potions
* Re-add register call
* Fix merge issue
* Fix issue with setting username
* Implement new alert style
* Display username confirmation status in settings
* Add disclaimer to change username field
* validate username in settings
* Allow specific fields to be focused when opening site settings
* Implement requested changes.
* Fix merge issue
* Fix failing tests
* verify username when users register with username and password
* Set ID for change username notification
* Disable submit button if username is invalid
* Improve username confirmation handling
* refactor(settings): address remaining code comments on auth form
* Revert "refactor(settings): address remaining code comments on auth form"
This reverts commit 9b6609ad646b23d9e3e394c1856f149d9a2d0995.
* Social user username (#10620)
* Refactored private functions to library
* Refactored social login code
* Added username to social registration
* Changed id library
* Added new local auth check
* Fixed export error. Fixed password check error
* fix(settings): password not available on client
* refactor(settings): more sensible placement of methods
* chore(migration): script to hand out procgen usernames
* fix(migration): don't give EVERYONE new names you doofus
* fix(migration): limit data retrieved, be extra careful about updates
* fix(migration): use missing field, not migration tag, for query
* fix(migration): unused var
* fix(usernames): only generate 20 characters
* fix(migration): set lowerCaseUsername
* - updates a group task - approval is required
- updates a group task with checklist
* add expect to test the new checklist length
* - moves tasks to a specified position out of length
* remove unused line
* website getter tasks tests
* re-add sanitizeUserChallengeTask
* change config.json.example variable to be a string not a boolean
* fix tests - pick the text / up/down props too
* fix test - remove changes on text/up/down - revert sanitize condition - revert sanitization props
* 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
* prevent quest progress message in party chat when user is resting in the inn
* improve comment
* update tests now that the test group includes a new member (sleeping quest participant)
* adjust a test to fix lint failure (and make the test better)
* fix order of element assignments in test array
* 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
* WIP - prevent multiple notifications
* merge promises to one
* update test, iterate each user
* revert changes in `groups.js` - filter duplicate notifications in `convertNotificationsToSafeJson`
* 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
* 10282: Added code for blocking party and guild invitations from blocked players, added tests
* 10282: fixed test label
* Update POST-groups_invite.test.js
removed `it.only` which was used for testing
* 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
* remove parallel saves from the code
* fix more unit tests
* do not save users when sending message in buyGift (saved later)
* fix test
* reinstall
* fix tests
* fix tests
* feat(gdpr) only store necessary data for social login
* feat(gdpr) also store email for social users
* fix(social auth): store emails array instead of single email
* fix(emails): do not get name from old facebook info
* add migration to remove extra data from social profiles
* update migration description
* fix tests
* fix typo in migration file
* fix(challenges): creator should not join challenge automatically
* change behavior on the client side as well
* update tests and fix membercount
* update tests
* fix tests
* begin implementing global webhooks
* add checklist item scored webhook
* add pet hatched and mount raised webhooks (no tests)
* fix typo
* add lvl up webhooks, remove corrupt notifications and reorganize pre-save hook
* fix typo
* add some tests, globalActivity webhook
* fix bug in global activiy webhook and add more tests
* add tests and fix typo for petHatched and mountRaised webhooks
* fix errors and add tests for level up webhook
* wip: add default data to all webhooks, change signature for WebhookSender.send (missing tests)
* remove unused code
* fix unit tests
* fix chat webhooks
* remove console
* fix lint
* add and fix webhook tests
* add questStarted webhook and questActivity type
* add unit tests
* add finial tests and features
* Began moving group chat to separate model
* Fixed lint issue
* Updated delete chat with new model
* Updated flag chat to support model
* Updated like chat to use model
* Fixed duplicate code and chat messages
* Added note about concat chat
* Updated clear flags to user new model
* Updated more chat checks when loading get group
* Fixed spell test and back save
* Moved get chat to json method
* Updated flagging with new chat model
* Added missing await
* Fixed chat user styles. Fixed spell group test
* Added new model to quest chat and group plan chat
* Removed extra timestamps. Added limit check for group plans
* Updated tests
* Synced id fields
* Fixed id creation
* Add meta and fixed tests
* Fixed group quest accept test
* Updated puppeteer
* Added migration
* Export vars
* Updated comments
* Client POC
We need to wrap each draggable region it its own div or else the
"draggable" element will conflict with each other. This screws up the
styling but that is totally fixable
* Ah that ref was being used after all, changing back
* Scaffold out a new callback for when we drag these things
Next is going to be the hard part: I need to save the sort order for
these to the database. I don't even know if there is a schema but hey
this is the best place to start
* Firefox caching is the problem: don't actually need the wrapper div
So I guess I should try this in chrome and see how it works then come
back to firefox and figure out what the heck is going on
* Scaffolding out our API call to save the sort order
The endpoint doesn't exist yet so we will need to add that
* Ok we are now calling our API endpoint to reorder these things
Of course it doesn't exist yet so you get a 404 when you try, but that
is ok
* Defining api endpoint, a work in progress
In particular I really had ought to use _id for these too, it appears
that the primary way we detect order doesn't even use "key" at all.
* Switching to using the pinned item UUID
This has much better results, but of course the server and client logic
don't match now. Will have to keep working on my splice to make sure
that they are the same
* I thought this would fix our server/client mismatch but it is not it
Something is really wrong with my logic somewhere, maybe I need to
update the db step?
* Moving this logic to the "user" rather than "tasks" and key off path
Path is unique and is less finiky than dealing with string comparisons
with ids. Unfortunately everything is still not working... I suppose
user.update() doesn't care about the position?
* This client code caused quite a lot of problems if you dragged fast
We don't really need it it seems, so off it goes
* Updating markup and CSS so it actually looks good.
Everything is working horray!!
I did just notice the following bug: the popover text sometimes makes it
very annoying to drag because you can't drop over it@
* Cleaning up my comments in the API section user.js
I had a lot of TODOS that are mostly done now
* Fixing a spacing code standards thing
* Turns out we never use type, so we should remove this from the API call
* Adding pinnedItemsOrder into the user schema
And disabling my call in the frontend before I do any more damage
* Halfway to using pinnedItemsOrder
This isn't working yet but it is not going to break it horribly like it
was before.
* Hooking up inAppRewards to always produce sorted information
It is suspicially working right now even though I have not added the
seasonal stuff logic yet...
* Updating the comments in user.js in movedPinnedItem
It turns out that my bandaid fix to just get the ball rolling perfectly
does what I need it to do when we have a length discrepancy. So we are
getting much closer to the final product, just need lots of testing
* Cleaning up code standards kinds of things
* Yay, this fixes the popover issue
I hope this is the right "vue" way to do things, because I tried a bunch
of other things that definately were not the right way to do it. And
this appears to work too
* ** Partial Work ** Starting tests on api call for draggable items
Doesn't work, doesn't compile so don't include in PR!
* Test failing still...
This is worth a save. The api call grabs the seasonal items too, so we
can't get away from using the common functions and calls here to get the
actual list of items
* Okay have the first test passing
Need to clean up my linter problems though
* Planning out the next two tests and fixing my format problems
* 2nd Test case written, this time with the "more" odd case
* Making sure that we didn't mess with pinned items
* Huh... this test doesn't give me the expected result
Drat, I guess I found a bug
* Throw an error when we put garbage in our api call.
Well, before we got user.pinnedItemsOrder filled with a bunch of "null"
entries which is not ideal. it still worked, but isn't this confusing
enough already?
* Cleaning up the multitude of linting problems thanks gulp :)
* Writing tests for inAppRewards.js, but something is wrong
* Fixing my linting errors in inAppRewards tests
These tests still do not run though, so they may fail and I would not
know
* Applying Negue's fixes to inAppRewards.js test
It never occured to me that we shouldn't try to reach the database while
in the common tests. Well, we shouldn't do that, we should use the
common.helpers instead. Thanks!
* protect all paths in user.pre(save using this.isDirectSelected to see if a field is available
* fix linting
* authWithHeaders: specify user fields to exclude instead of the ones to include, add comments, doc and improve test
* add more options to unit helper generateReq and add tests for excluding fields in authWithHeaders
* Adding check to give master classer acheivement on any master classer series quest completion
fixes#9461
* Fixing concat bug by assigning the variable after concatenation.
* Fixing retry query.
* feat(world-boss): barebones API
* fix(world): use Express respond for better JSON
* fix(api): respond with code 200
* feat(content): canonical Dysheartener desc and Rage
* fix(world-boss): enable progress
* WIP(test): world state API
* WIP(test): refactor world boss setup
* WIP(test): better expectations
* fix(test): more expect polishing
* feat(event): server side World Boss
* fix(strings): accidental deletion
* fix(content): include encouragement after Rage
* refactor(world-boss): address comments
* Added cache for user styles on chat
* Added loading on new message and other minor checks
* Added null checks
* Updated chat tests
* Added costume preference to chat
* Removed single profile cacheing for new chat messages
* Remove owned gear from cache
* Updated stats to only use buffs
* Added initial bailey api
* wip
* implement new panel header
* Fixed lint
* add ability to mark notification as seen
* add notification count, remove top badge from user and add ability to mark multiple notifications as seen
* add support dismissall and mark all as read
* do not dismiss actionable notif
* mark as seen when menu is opened instead of closed
* implement ordering, list of actionable notifications
* add groups messages and fix badges count
* add notifications for received cards
* send card received notification to target not sender
* rename notificaion field
* fix integration tests
* mark cards notifications as read and update tests
* add mystery items notifications
* add unallocated stats points notifications
* fix linting
* simplify code
* refactoring and fixes
* fix dropdown opening
* start splitting notifications into their own component
* add notifications for inbox messages
* fix unit tests
* fix default buttons styles
* add initial bailey support
* add title and tests to new stuff notification
* add notification if a group task needs more work
* add tests and fixes for marking a task as needing more work
* make sure user._v is updated
* remove console.log
* notification: hover status and margins
* start styling notifications, add separate files and basic functionalities
* fix tests
* start adding mystery items notification
* wip card notification
* fix cards text
* initial implementation inbox messages
* initial implementation group messages
* disable inbox notifications until mobile is ready
* wip group chat messages
* finish mystery and card notifications
* add bailey notification and fix a lot of stuff
* start adding guilds and parties invitations
* misc invitation fixes
* fix lint issues
* remove old code and add key to notifications
* fix tests
* remove unused code
* add link for public guilds invite
* starts to implement needs work notification design and feature
* fixes to needs work, add group task approved notification
* finish needs work feature
* lots of fixes
* implement quest notification
* bailey fixes and static page
* routing fixes
* fixes # this.$store.dispatch(guilds:join, {groupId: group.id, type: party});
* read notifications on click
* chat notifications
* fix tests for chat notifications
* fix chat notification test
* fix tests
* fix tests (again)
* try awaiting
* remove only
* more sleep
* add bailey tests
* fix icons alignment
* fix issue with multiple points notifications
* remove merge code
* fix rejecting guild invitation
* make remove area bigger
* fix error with notifications and add migration
* fix migration
* fix typos
* add cleanup migration too
* notifications empty state, new counter color, fix marking messages as seen in guilds
* fixes
* add image and install correct packages
* fix mongoose version
* update bailey
* typo
* make sure chat is marked as read after other requests
* Validate that everyX values are integers bounded by 0 and 9999
* Added client side check
* Updated tests
* Added migration for bad dailies
Near idential to the other task migration.
* fix(typo): camelCase function call
* Bugfix: declare variable locally
* Bugfix: fix syntax error
* Bugfix: regex char-class with alternatives
The old implementation used character classes instead of
alternatives. As a consequence, the regex would match:
- a_warrior_0
- r_warrior_0
- m_warrior_0
- o_warrior_0
- r_warrior_0
- |_warrior_0
- h_warrior_0
- ...
The regex will now match:
- armor_warrior_0
- head_warrior_0
- shield_warrior_0
* Implemented repeat after completion
* Added tests for repeat after completion in shouldDo.test.js
* Remove lastTicked
* Undoes removal of website/client/README.md
* fix(sprites): serve animated GIFs
Also add new GIF for upcoming quest line
* feat(content): Masterclasser capstone quest
Also fixes Quests page for clearer lock/unlock display
* chore(sprites): compile
* feat(achievements): award quest completionist cheevo
* feat(quests): Siphoning Void
fix Achievements page styling and text spacing
fix display of Rage bar on party page
* test(quests): Lost Masterclasser
* chore(news): Bailey
* fix(test): only use Masterclasser in relevant scenario
* Added flagging to show to admins
* Fixed filters in my guilds
* Fixed login incentives style
* Added inital rage bar
* Added categoires to get group
* Updated profile stats page
* Added stat allocation
* Updated tests to include categoires
* Fixed lint issue
* Added another lint fix
* Separated private message model
* Added markdown to profile
* Add color backgrounds
* Added broken challenge flow
* Added summary field to getgroups
* Fixed group form information loading
* Updated autocomplete to use chat
* Fixed npc styles
* Fixed onload mentions
* Links stay white on hover
* Fixed task icon color
* Disabled plus button when needed
* Fixed difficulty color
* Fixed task reward color
* Updated create styles
* Fixed group plan link
* Fixed second group test modal
* Added login incentives
* Fixed group notification clear
* Show baily correctly
* Styled armoire notification
* Fixed contributor achievement styles
* Fixed death
* Fixed drop styles
* Fixed invited friend modal
* Fixed joined challenge achievement style
* Fixed joined guild style
* Fixed level up styles
* Updated low health styles
* Fixed bailey styles
* Updated quest completed
* Added soem conditionals to hide modals
* Added rebirth styles
* Fixed rebirth enable styles
* Fixed streak styles
* Fixed testing modals
* Fixed ultimate gear achievement
* Fixed won challenge
* Set user to welcomed if created on mobile
* Removed old default tasks
* Began adding more options to avatar
* Added change class
* Inbox to messages
* Moved profile to menu
* Added user modal for viewing a user and send message
* Fixed conversations
* Fixed lint
* Fixed challenges sending to server
* Added challenge progress view
* Fixed group sync after pay
* Fixed some group accepting features
* Fixed initial chat loading
* Fixed some exitence errors
* Added user names to assigned
* Added upgrade link
* Began adding new payment flow
* Added default tasks
* Updated avatar styles
* Updated tutorial styles
* Rebuilt notifications and styles
* Updated upload script
* Fixed lint
* Added default tasks back to mobile and added updated tests
* More test fixes
* Footer style fixes
* Limited string display
* Fixed background reload
* Began adding more avatar items
* Fixed challenge updated cats and official to be seen by admins
* Fixed min prize
* Fixed required fields
* Added my challenges and find challenges to menu
* Removed nav to party page when have no party
* Updated user and notifications icon
* Added accept, reject and messages
* Added selfcare
* Underline links
* Added forgot password
* Fixed task adding
* Disabled habit options that should be
* Added markdown to tags
* Added confirm to delete
* Fixed cancel/delete style
* Fixed rounding
* Added gold icon
* Fixed task icon styles
* Fixed margin botton
* Fixed some repeat styles
* Fixed custom reward style
* Hide like count 0
* Added new tavern images
* Redirect to party page after create
* Hid leader options from non leaders
* Removed manager options from non group plan
* Fixed some nav styles
* Fixed overlay color
* Prevented edit data from being transfered to create
* Added hover state for spells
* Add performance fixes for chat avatars
* Fixed merge conflicts
* Updated fron navigation
* Fixed reg gryphon logo
* Began adding gem modal functionality
* Added purchase gems with gold
* Fixed restore
* Replaced description with summary
* Spells that target tasks fix
* Added initial challenge task load
* Fixed lint issue
* create new summary field for challenges
* finish implementating summary for challenges, add some support for guilds
* make small improvements to challenges code
* fix lint errors
* add more code to support summaries for guilds (still more needed)
* fix existing tests by adding summary field
* make existing tests pass
* WIP make "Public Challenges" text translatable
* change "leader" locale key to "guildOrPartyLeader" to make searches for it easier
* remove v-once from h2 headings
* remove failed attempt to localise text in <script>
* add quick-and-dirty error checking for guild not having categories
* make "Public Challenges" text translatable
* rename final ...PlaceHolder strings to ...Placeholder (lower-case "h") for consistency with existing Placeholder strings
* toggle pinned state of items server + client
* pin quests / add pin src
* add officially pinned items and api to get in app rewards
* update schema and get items deatils
* update pin actions to the new logic
* show countBadge only with a number
* extract getPinKey - pin seasonal items
* togglePinned in buy-dialogs
* add pinKey to shop items
* wip
* wip
* fix path
* togglePinnedItem as common.op / use in client
* fix linting
* pinning: getItemInfo and save in db path and type
* make api more consistent, fix bugs
* updates
* fix bugs
* update actions to current api
* marketGear
* change to pinType
* add mystery_set to getItemInfo
* fix isPinned
* ignore animals
* list shopItems (initial)
* shopItem now has default popoverconent, itemclass and price / currency - list pinned items as rewards - attributes to gear
* show buyModal for the rewards
* show mystery_set icon
* add info whether item is suggested
* write migration, fix style issues
* pin potion and armoire
* make potion, armoire not unpinnable
* show notes for armoire and potion, add default items for new users
* show unpin notification
* add/remove pinned gear on class-change
* remove pinned & add new gear on purchase - refactoring pinning methods - fixes
* always allow to purchase armoire
* highlight item if suggested
* tasks hover state
* hide column background if task too close
* wip edit tasks
* wip: replace tags
* upgrade bootstrap-vue and fix creare btn for tasks
* difficulty options colors and active label fixes
* fix tags
* Added challenges section
* Added public fields to guilds
* Added suggestion for habitica help guild
* Added categoires to group
* Added guild category filters
* Added guild filter by member count
* Removed console.log
* Updated group count in tests to account for newly created groups
* (server) Add parties array to store invites
* (server) Lint files
* Update joinGroup, rejectGroupInvite, _inviteByUUID, and remove clearPartyInvitation.js
* Update user schema: detailed 'invitations.parties' attributes
* Code improvement and do not let invite twice
* Check if the user is already invited earlier in the code
* Added message to invitation page, and show all invitations
* Added join party confirmation alert
* Small fixes
* Created test: allow inviting a user to 2 different parties
* Updated tests
* Update invitations.parties on more places
* Small adjustments
* Updates on invitations.party references
* Show all invitations when user is already in a party
* Fixed notifications counter
* Update both 'party' and 'parties' at _handleGroupInvitation
* Updated a test
* Fixed small mistake at _handleGroupInvitation
* More test update
* Update invitation.party when removing single invite and small adjust at view
* Added text to locale
* Added achievement to content and libs
* Added achievement modal
* Added achievement to notification model and controller
* Added achievement to user schema
* Grant achievement to inviter when user registers using emailed link
* Fix icon name
* Added integration test
* Fix linting
* Added sprite
* Initial psuedo-code for checking for slurs in messages
* Initial working prototype for blocking posting of slurs. Moved check from group.js to the chat api. Still needs: to permanently revoke chat privileges, to notify the moderators, a better method for checking for the blacklisted words, and a way to get the real list of words to check.
* Permanently revoke chat privileges when attempting to post a slur.
* Removed console logs
* Fixing rebase
* Do not moderate private groups
* Moved slur check to a generic check for banned words function
* Moved list of slurs to a separate file, fixed misplacement of return in ContainsBannedWords() function
* Slurs are blocked in both public and private groups
* Added code to send a slack message for slurs
* Fixed formatting issues
* Incorporated tectContainsBannedWords() function from PR 8197, added an argument to specify the list of banned words to check
* Added initial tests for blocking slurs and revoking chat priviliges
* Uncommented line to save revoked privileges
* Check that privileges are revoked in private groups
* Moved code to email/slack mods to chat api file
* Switched to BadRequest instead of NotFound error
* Restore chat privileges after test
* Using official placeholder slur
* Fixed line to export sendSubscriptionNotification function for slack
* Replaced muteUser function in user methods with a single line in the chat controller file
* Reset chatRevoked flag to false in a single line
* Switched method of setting chatRevoked flag so that it is updated locally and in the database
* First attempt at the muteUser function: revokes user's chat privileges and notifies moderators
* Manual merge for cherry-pick
* Initial working prototype for blocking posting of slurs. Moved check from group.js to the chat api. Still needs: to permanently revoke chat privileges, to notify the moderators, a better method for checking for the blacklisted words, and a way to get the real list of words to check.
* Permanently revoke chat privileges when attempting to post a slur.
* Removed console logs
* Created report to be sent to moderators via email
* Do not moderate private groups
* Moved slur check to a generic check for banned words function
* Moved list of slurs to a separate file, fixed misplacement of return in ContainsBannedWords() function
* Slurs are blocked in both public and private groups
* Added code to send a slack message for slurs
* Fixed formatting issues
* Incorporated tectContainsBannedWords() function from PR 8197, added an argument to specify the list of banned words to check
* Added initial tests for blocking slurs and revoking chat priviliges
* Uncommented line to save revoked privileges
* Check that privileges are revoked in private groups
* Moved code to email/slack mods to chat api file
* Switched to BadRequest instead of NotFound error
* Restore chat privileges after test
* Using official placeholder slur
* Fixed line to export sendSubscriptionNotification function for slack
* Replaced muteUser function in user methods with a single line in the chat controller file
* Reset chatRevoked flag to false in a single line
* Switched method of setting chatRevoked flag so that it is updated locally and in the database
* Removed some code that got re-added after rebase
* Tests for automatic slur muting pass but are incomplete (do not check that chatRevoked flag is true)
* Moved list of banned slurs to server side
* Added warning to bannedSlurs file
* Test chat privileges revoked when posting slur in public chat
* Fix issues left over after rebase (I hope)
* Added code to test for revoked chat privileges after posting a slur in a private group
* Moved banned slur message into locales message
* Added new code to check for banned slurs (parallels banned words code)
* Fixed AUTHOR_MOTAL_URL in sendTxn for slur blocking
* Added tests that email sent on attempted slur in chat post
* Created context for slur-related-tests, fixed sandboxing of email. Successfully tests that email.sendTxn is called, but the email content test fails
* commented out slack (for now) and cleaned up tests of sending email
* Successfully tests that slur-report-to-mods email is sent
* Slack message is sent, and testing works, but some user variables seem to only work when found in chat.js and passed to slack
* Made some fixes for lint, but not sure what to do about the camel case requirement fail, since that's how they're defined in other slack calls
* Slack tests pass, skipped camelcase check around those code blocks
* Fixed InternalServerError caused by slack messaging
* Updated chat privileges revoked error
* fix(locale): typo correction
* add possibility for group to block members from getting gems
* fixes
* fix tests
* adds some tests
* unit tests
* finish unit tests
* remove old code
* use new email template when subscription is cancelled from joining a group plan
* use new email template when subscription is cancelled from joining a group plan - needs more code, tests
* change from sending new email as a cancel-subscription option to sending as a group plan join email
Uses a new group-member-join email template instead of old group-member-joining because new template includes mandril conditional merge tags.
Also adds tests and comments. Edits some comments for accuracy and typo fixes.
* adapt group-member-join email template for manual cancel message for iOS and Android subscriptions
* save test user so its profile name can be read by calls to sendTxn
* add documentation for the user model cancelSubscription function
* add constants for strings passed to mandrill email templates
* Added image
* Added new achievement to user schema
* Added new achievement to content
* Added new achievement to libs
* Added achievement text to locale
* Added achievement to notification model and controller
* Grant achievement on joining or creating first challenge
* Added achievement to modal template
* Compiled new sprites
* Added integration tests
* Fix linting error
* Add card and achievement sprite for Congrats card
* Add data regarding Congrats card
* Add Get Well card
* Add Get Well images
* Add schema
* Remove `if (!target.flags) target.flags = {};` code from cards
* Remove white backgrounds for congrats sprites
* add inital tests for cards
* Fix card tests
* Fix invalid urls in tests
* Update POST-user_class_cast_spellId.test.js
* Update POST-user_class_cast_spellId.test.js
* Update POST-user_class_cast_spellId.test.js
* Update congrats card sprite
* Fix card logic
* Fix user schema
* Change achievement values for new cards to Number
* Resize congrats and getwell cards
This will make them be sized properly
* Separate Market from Drops
* Extract cards to new section
* fix(sprites): revert spritesheet changes
* Add flags if target does not have them
* Make flags.chatRevoked prevent sending private messages (issue #7971)
* Disallow sending gems when messages aren't allowed.
* Created function to check for objections to an interaction to user model and wired it into the API (issue #7971)
* Fixes for issues raised by reviewers.
* Added allowed values to apidoc for api.getObjectionsToInteraction.
* Refactoring of getObjectionsToInteraction and minor API changes.
* fix(objections): address PR comments
* fix(strings): use US English for base edits
* refactor(test): typos and phrasing
* Enabled repeatables
* Added every x to weekly
* Updated new recur logic to work with tests
* Added repeatable tests back
* Added custom day start support
* Moved back to zone function
* Added zone back
* Added nextDue field
* Abstracted set next due logic, set offset, and mapped to ISO
* Removed extra codes
* Removed clone deep
* Added summary local
* Fixed every x weekly
* Prevented edit of repeats on
* Added next due date
* Fixed display of next due dates
* Fixed broken tests
* added next due date as today for weekly
* Fixed integration tests
* Updated common test
* Use user's format
* Allow user to deselect all days during week
* Removed let from front end
* WIP(guilds): AB test pester modal
* WIP(AB-test): guild pester cont'd
* fix(style): linting error
* fix(AB-test): markModified and notif enum
* fix(tests): update AB expectations
* fix(modal): remove extra includes
* feat(achievements): add Joined Guild cheevo
Also removes unused achievement sprites, and properly saves counter used in A/B testing
* fix(style): linting error from conflict
* Added isDue field and isDue set on create
* Added isDue update on update task
* Add isdue calc to score task
* Added isdue calc to cron
* Fixed lint issue
* Added isDue to no set and updated grammar
* Display an error when invalid values are given
* Add character values tests for settingsCtrl
* Only check for invalid level values
* Remove unnecessary validation function
* Min level of 1 on user model
* (tests) Removed stubbing on restore
* Adding code to look over the most recent messages to look for spam from a user
* Adding in translatable error message
* Adding 2 tests for spam detection
* Fixing changes requested for pull request
* Adding unit tests for group and fixing requested changes
* Fixing message and tests
* Forgot to remove this import
* Fixing lint errors
* Cleaning up the code and tests to be more readable
* Fixing lint errors
* Fixed linting issues
* Syntax fixes
* Updated grammar
* Added abiltiy to add group managers
* Added ability to remove managers
* Added ability for managers to add group tasks
* Allower managers to assign tasks
* Allowed managers to unassign tasks
* Allow managers to delete group tasks
* Allowed managers to approve
* Added initial ui
* Added approval view for managers
* Allowed managers to edit
* Fixed lint issues
* Added spacing to buttons
* Removed leader from selection of group managers
* Code review updates
* Ensured approvals are only done once
* Added ability for parties to add managers
* Add notifications to all managers when approval is requests
* Removed tasks need approval notifications from all managers when task is approve
* Fixed linting issues
* Hid add managers UI from groups that are not subscribed
* Removed let from front end
* Fixed issues with post task url params
* Fixed string locales
* Removed extra limited strings
* Added cannotedit tasks function
* Added limit fields and notification check by taskId
* Localized string and other minor issues
* Added manager and leader indicator
* Added group notifications refresh on sync
* Added close button for group notifications
* Removed group approval notifications when manager is removed
* Moved leader/manager indicators to after hp
* Added manager fields to groups
* Spelling and syntax fixes
* feat(mobile): different default tasks
* fix(linting): missing space
* fix(user): correct client type logic
* test(integration): tasks by platform
* fix(test): remove only
* test(user): deeper checks on tasks
* refactor(test): whitespace for readability
If INVITES_LIMIT is allowed to be greater than MAX_EMAIL_INVITES_BY_USER
then the inviter can send more than MAX_EMAIL_INVITES_BY_USER invitations
at once.
* Added email invite limit
* change error message for sending too many invitations to instruct them to email us
* fix test error message to use variable in locales string
* add comment to warn about keeping INVITES_LIMIT low
If INVITES_LIMIT is allowed to be greater than MAX_EMAIL_INVITES_BY_USER
then the inviter can send more than MAX_EMAIL_INVITES_BY_USER invitations
at once.
* Added a field in Party page with members count and maximum members in party
* Added information of invitations counter
* Limited party to 2 members on server (API)
* Fixed english text
* Consider current number of invitations in the party
* Moved PARTY_LIMIT_MEMBERS to common folder
* Access the PARTY_LIMIT_MEMBERS through groupsCtrl
* Some corrections
* Hide invite button when invite limit is reached
* Added missing trailing comma
* Do not test 'returns only first 30 invites' in a party anymore, but in a guild: party is limited to 30 members, so it would always fail
* Test: allow 30 members in a party
* Test: do not allow 30+ members in a party
* Improved 'allow 30 members in a party' test
* Test: 'allow 30+ members in a guild'
* Added missing trailing comma
* Code style corrections
* Fixed new line position
* Party limit check done inside Group.validateInvitations function
* Improved members count query
* Fixed tests
* Rewrite tests
* Removed import of BadRequest: value became unused
* Added 'await' to remaining 'Group.validateInvitations' functions
* Fixed tests that would always success
* Fixed task sorting
* Add sync when group task is deleted
* Added sync when user tasks reorder
* Abstracted show logic and removed task grouping from group page
* Fixed scope typo
* Localized the default challenge short name
* Removed default shortName
* Fixed test for challenge shortName
* Added subscriptions to all members when group subs
* Added unsub when group cancels
* Give user a subscription when they join a subbed group
* Removed subscription when user leaves or is removed from group
* Fixed linting issues:
* Added tests for users with a subscription being upgraded to group plan
* Added tests for checking if existing recurring user sub gets updated during group plan. Added better merging for plans
* Added test for existing gift subscriptions
* Added additional months to user when they have an existing recurring subscription and get upgraded to group sub
* Adds test for user who has cancelled with date termined in the future
* Added test to ensure date termined is reset
* Added tests for extra months carrying over
* Added test for gems bought field
* Add tests to for fields that should remain when upgrading
* Added test for all payment methods
* Added prevention for when a user joins a second group plan
* Fixed subscribing tests
* Separated group plan payment tests
* Added prevention of editing a user with a unlimited sub
* Add tests to ensure group keeps plan if they are in two and leave one
* Ensured users with two group plans do not get cancelled when on group plan is cancelled
* Ensured users without group sub are untouched when group cancels
* Fixed lint issues
* Added new emails
* Added fix for cron tests
* Add restore to stubbed methods
* Ensured cancelled group subscriptions are updated
* Changed group plan exist check to check for date terminated
* Updated you cannont delete active group message
* Removed description requirement
* Added upgrade group plan for Amazon payments
* Fixed lint issues
* Fixed broken tests
* Fixed user delete tests
* Fixed function calls
* Hid cancel button if user has group plan
* Hide difficulty from rewards
* Prevented add user functions to be called when group plan is cancelled
* Fixed merge issue
* Correctly displayed group price
* Added message when you are about to join canclled group plan
* Fixed linting issues
* Updated tests to have no redirect to homes
* Allowed leaving a group with a canceld subscription
* Fixed spelling issues
* Prevented user from changing leader with active sub
* Added payment details title to replace subscription title
* Ensured we do not count leader when displaying upcoming cost
* Prevented party tasks from being displayed twice
* Prevented cancelling and already cancelled sub
* Fixed styles of subscriptions
* Added more specific mystery item tests
* Fixed test to refer to leader
* Extended test range to account for short months
* Fixed merge conflicts
* Updated yarn file
* Added missing locales
* Trigger notification
* Removed yarn
* Fixed locales
* Fixed scope mispelling
* Fixed line endings
* Removed extra advanced options from rewards
* Prevent group leader from leaving an active group plan
* Fixed issue with extra months applied to cancelled group plan
* Ensured member count is calculated when updatedGroupPlan
* Updated amazon payment method constant name
* Added comment to cancel sub user method
* Fixed smantic issues
* Added unite test for user isSubscribed and hasNotCancelled
* Add tests for isSubscribed and hasNotCanceled
* Changed default days remaining to 2 days for group plans
* Fixed logic with adding canceled notice to group invite
* Added initial should do weekly tests
* Added support back in for days of the week and every x day
* Added better week day mapper
* Added initial monthly
* Added every x months
* Added yearlies
* Fixed every nth weekdy of month
* Fixed tests to check every x week on weekday
* Began combining x month with nth weekday
* Added every x month combined with date and weekday
* Fixed lint issues
* Saved moment-recurr to package.json
* Added new repeat fields
* Added UI for repeatables
* Ensured only dalies are affected by summary
* Added local strings
* Updated npm shrinkwrap
* Shared day map constant
* Updated shrinkwrap
* Added ui back
* Updated copy of test cases
* Added new translation strings
* Updated shrinkwrap
* Fixed broken test
* Made should do tests static for better consitency
* Fixed issue with no repeat
* Fixed line endings
* Added frequency enum values
* Fixed spacing
* Added setting and modal for score notes
* Added persistent score notes
* Fixed linting issues and documented new field
* Added max length to task score notes
* Added check for score notes existence
* Combined tasks perferences
* Leaving a group or a guild no longer removes the user from the challenges of that group or guild.
* Updating api docs for leaving group to take into account the default path no longer leaving challenges when leaving a group.
* Updating api docs for leaving group to take into account the default path no longer leaving challenges when leaving a group.
* refactored according to blade's comments to not be a breaking change. The api now accepts a body parameter to specify wether the user
should remain in the groups challenges or leave them. The change also adds more tests around this behavior to confirm that it works
as expected.
* Added support for grouping tasks by chllenge
* Fixed tests and updated default challenge model name
* Fixed broken member test
* Updated setting string
* Changed to shortName
* Began abstracting task grouping
* Added initial task directive code
* Added new directives to help with grouping of tasks
* Removed random console.log
* Clean version of PR 8175
The original PR for this was here:
https://github.com/HabitRPG/habitica/pull/8175
Unfortunately while fixing a conflict in tasks.json, I messed up the rebase and wound up pulling in too many commits and making a giant mess. Sorry. :P
* Fixing test failure
This test seems to occasionally start failing (another coder reported the same thing happening to them in the blacksmiths’ guild) because the order in which the tasks are created can sometimes not match the order in the array. So I have sorted the tasks array after creation by the task name to ensure a consistent ordering, and slightly reordered the expect statements to match.
* Support subscription payment through Google Play Store
* minor fixes to iap subscriptions
* Support subscription payment through Google Play Store
* minor fixes to iap subscriptions
* revert change to test
* add unit tests for google payments
* add integration tests for google payments
* change config formatting for play api
* fix typo in file name
* fix typo in example config
* Improve google payment tests
* fix linter errors
* Added notification for approval request in the group leaders language
* Added test for group task meta actions. Added sync when user claims
* Added tests for group task actions. Ensured assigned members are synce when added or removed
* Fixed approval required toggle
* Added support for users with comma in their name
* Fixed sync issue when user is approved and reloads the website
* Added advance options for group rewards
* Added back ticks to group claim message
* Fixed disappearing tasks that need approval
* Up chat limit to 400 for subbed groups
* Fixed line endings
* Updated activie subscription check
* Added group isSubscribed function
* Changed to isAfter
* Adding new method to user schema that pushes a new notification to the database with an update operation instead of a save. fixes#8264
* fixing test text
* changing the addUserNotificationUpdate method to a static method as requested.
* Renaming to push notification
* fixing comment documentation based on pr comments.
* Changed the update statement to do a multi update and added a validation step. Added tests for both these cases.
* Updating pushNotification method to allow a query to be passed instead of an array of userIds to make it more flexible.
* Removing createdAt field from tests as it's no longer used.
* Removing only from test suite
* avoid setting profile name to not found
* only set profile name when empty
* profile.name is required
* set profile name before validation
* fix and add tests
* adding quest owner specific rewards. closes#2715
* Updating model to prevent this from being a breaking change.
* Removing duplicate translatable string and readding accidentally deleted portion
* capitalizing according to pr.
* fixing according to comments on pr
* removing final mistakes
* fixing whitespace
* re-adding the onlyOwner field that got deleted when the index.js file was moved and fixed console errors.
* moving cleaning of empty obejct for quest owner updates into quest owner updates method
* Fixing so tests pass by updating variable name and removing unnecessary parameter definition.
* adding a new test and refactoring client side code to use controller method.
* Added all ui components back
* Added group ui items back and initial group approval directive
* Added approval list view with approving functionality
* Added notification display for group approvals
* Fixed linting issues
* Removed expectation from beforeEach
* Moved string to locale
* Added per use group plan for stripe
* Added tests for stripe group plan upgrade
* Removed paypal option
* Abstract sub blocks. Hit group sub block from user settings page. Added group subscriptin beneifts display
* Fixed lint issue
* Added pricing and adjusted styles
* Moved text to translations
* Added group email types
* Fixed typo
* Fixed group plan abstraction and other style issues
* Fixed email unit test
* Added type to group plan to filter our group plans
* Removed dev protection from routes
* Removed hard coding and fixed upgrade plan
* Added error when group has subscription and tries to remove
* Fixed payment unit tests
* Added custom string and moved subscription check up in the logic
* Added ability for old leader to delete subscription the created
* Allowed old guild leader to edit their group subscription
* Fixed linting and tests
* Added group sub page to user sub settings
* Added approval and group tasks requests back. Hid user group sub on profile
* Added group tasks sync after adding to allow for editing
* Fixed promise chain when resolving group
* Added approvals to group promise chain
* Ensured compelted group todos are not delted at cron
* Updated copy and other minor styles
* Added group field to tags and recolored group tag.
* Added chat message when task is claimed
* Preventing task scoring when approval is needed
* Added approval requested indicator
* Updated column with for tasks on group page
* Added checklist sync on assign
* Added sync for checklist items
* Added checkilist sync when task is updated
* Added checklist sync remove
* Sanatized group tasks when updated
* Fixed lint issues
* Added instant scoring of approved task
* Added task modal
* Fixed editing of challenge and group tasks
* Added cancel button
* Added add new checklist option to update sync
* Added remove for checklist
* Added checklist update
* Added difference check and sync for checklist if there is a diff
* Fixed task syncing
* Fixed linting issues
* Fixed styles and karma tests
* Fixed minor style issues
* Fixed obj transfer on scope
* Fixed broken tests
* Added new benefits page
* Updated group page styles
* Updated benefits page style
* Added translations
* Prevented sync with empty trask list
* Added task title to edit modal
* Added new group plans page and upgrade redirect
* Added group plans redirect to upgrade
* Fixed party home page being hidden and home button click
* Fixed dynamic changing of task status and grey popup
* Fixed tag editing
* Hid benifites information if group has subscription
* Added quotes to task name
* Fixed issue with assigning multiple users
* Added new group plans ctrl
* Hid menu from public guilds
* Fixed task sync issue
* Updated placeholder for assign field
* Added correct cost to subscribe details
* Hid create, edit, delete task options from non group leaders
* Prevented some front end modifications to group tasks
* Hid tags option from group original task
* Added refresh for approvals and group tasks
* Prepend new group tasks
* Fix last checklist item sync
* Fixed casing issue with tags
* Added claimed by message on hover
* Prevent user from deleting assigned task
* Added single route for group plan sign up and payments
* Abstracted stripe payments and added initial tests
* Abstracted amazon and added initial tests
* Fixed create group message
* Update group id check and return group
* Updated to use the new returned group
* Fixed linting and promise issues
* Fixed broken leave test after merge issue
* Fixed undefined approval error and editing/deleting challenge tasks
* Add pricing to group plans, removed confirmation, and fixed redirect after payment
* Updated group plan cost text
* transferGems: use receiver language translation for PM strings #7722
* chore(test): DRY up transfer gems test
* chore(test): Allow check for language in translation assertion
* chore(test): Add test that member locales are used in transfer gems msg
* sendMessage: optionally take also the message in sender's language
when present, it is stored in the sender's inbox instead of the version
in the target language.
* transferGems: prepare pm in both languages #7722
* sendMessage: take an object for the second parameter instead
* payments: made two more gift strings translatable
* buyGems: send both translations for gifted gems
* buyGems: send push notifications in target user's locale
* createSubscription: send both translations for gifted subs
* createSubscription: send push notifications in target user's locale
* transferGems: send push notifications in target user's locale
* tests: adjust payment tests for translation changes
* added function doc for sendMessage
* tests: added bilingual test for buyGems
* fix: confirm no user objects reference a group before deleting it when the member count reaches 0
* Updating mongo queries to return promises and use the select statement.
* Implementing retries on failed user updates when finishing a quest. fixes#8035
* Refactoring mongo db retries to use the same as code path as original call and moving retries to count based over time based.
* Adding tests for retry logic and updating retries to happen recursively
* Moving callbacks to promises and other tweaks according to pr.
* Chaging mongoose promise to use .catch() functionality
* If all retries fail, the system will now throw an error instead of returning an error message.
* New notification feature that notifies a user when their group invite is accepted. fixes#7788
* Updating to a modal instead of a popup notification
* Making a generic modal template and using it for notifications of group invitation acceptance.
* Working with paglias's comments for doing translation server side.
* Final changes based on pr comments.
* Added all ui components back
* Added group ui items back and initial group approval directive
* Added ability to mark tasks as requires approval. Added approvals ctrl. Added get approvals method to tasks service
* Added approval list view with approving functionality
* Added error to produce message when task requests approval
* Added notification display for group approvals
* Fixed notification read and adding task
* Fixed syncing with group approval required
* Added group id to notifications for redirect on client side
* Fixed approval request tests
* Fixed linting issues
* Removed expectation from beforeEach
* Moved string to locale
* Added eslint ignore
* Updated notification for group approved, added new icons, and updated styles
* Hid group plan ui
* Added payment to groups and pay with group plan with Stripe
* Added edit card for Stripe
* Added stripe cancel
* Added subscribe with Amazon payments
* Added Amazon cancel for group subscription
* Added group subscription with paypal
* Added paypal cancel
* Added ipn cancel for Group plan
* Added a subscription tab and hid only the task tab when group is not subscribed
* Fixed linting issues
* Fixed tests
* Added payment unit tests
* Added back refresh after stripe payment
* Fixed style issues
* Limited grouop query fields and checked access
* Abstracted subscription schema
* Added year group plan and more access checks
* Maded purchase fields private
* Removed id and timestampes
* Added else checks to ensure user subscription is not altered. Removed active field from group model
* Added toJSONTransform function
* Moved plan active check to other toJson function
* Added check to see if purchaed has been populated
* Added purchase details to private
* Added correct data usage when paying for group sub
* Added initial group tasks ui
* Changed group compnent directory
* Added group task checklist support
* Added checklist support to ui
* Fixed delete tags route
* Added checklist routes to support new group tasks
* Added assign user tag input
* Added new group members autocomplete directive
* Linked assign ui to api
* Added styles
* Limited tag use
* Fixed line endings
* Updated to new file structure
* Fixed failing task tests
* Updatd with new checklist logic and fixed columns
* Added purchased info to group and prevented non purchased group from seeing new group tasks
* Updated add task function
* Added userid check back to tag routes
* Marked tag tests as pending
* Added comments to pending tests
* Added back routes accidently deleted
* Added locale strings
* Other clarity fixes
* Moved common task function to task service
* Removed files from manifest
* Fixed naming collision and remove logic
* Removed group get tasks until live
* Fixed test to check update task. Removed extra removeTask call. Synced updated checklists. Added purchased to noset
* Fixed delete group task
* refactor: Move translate test utility to helpers directory
* Add kind property to webhooks
* feat: Add options to create webhook route
* refactor: Move webhook ops into single file
* refactor: Create webhook objects for specific webhook behavior
* chore(tests): Add default sleep helper value of 1 second
* feat(api): Add method for groups to send out webhook
* feat(api): Add taskCreated webhook task creation
* feat(api): Send chat webhooks after a chat is sent
* refactor: Move webhook routes to own controller
* lint: Correct linting errors
* fix(api): Correct taskCreated webhook method
* fix(api): Fix webhook logging to only log when there is an error
* fix: Update groupChatRecieved webhook creation
* chore: Add integration tests for webhooks
* fix: Set webhook creation response to 201
* fix: Correct how task scored webhook data is sent
* Revert group chat recieved webhook to only support one group
* Remove quest activity option for webhooks
* feat: Send webhook for each task created
* feat: Allow webhooks without a type to default to taskScored
* feat: Add logic for adding ids to webhook
* feat: optimize webhook url check by shortcircuiting if no url is passed
* refactor: Use full name for webhook variable
* feat: Add missing params to client webhook
* lint: Add missing semicolon
* chore(tests): Fix inccorect webhook tests
* chore: Add migration to update task scored webhooks
* feat: Allow default value of webhook add route to be enabled
* chore: Update webhook documentation
* chore: Remove special handling for v2
* refactor: adjust addComputedStatsToJSONObject to work for webhooks
* refactor: combine taskScored and taskActivity webhooks
* feat(api): Add task activity to task update and delete routes
* chore: Change references to taskScored to taskActivity
* fix: Correct stats object being passed in for transform
* chore: Remove extra line break
* fix: Pass in the language to use for the translations
* refactor(api): Move webhooks from user.preferences.webhooks to user.webhooks
* chore: Update migration to set webhook array
* lint: Correct brace spacing
* chore: convert webhook lib to use user.webhooks
* refactor(api): Consolidate filters
* chore: clarify migration instructions
* fix(test): Correct user creation in user anonymized tests
* chore: add test that webhooks cannot be updated via PUT /user
* refactor: Simplify default webhook id value
* refactor(client): Push newly created webhook instead of doing a sync
* chore(test): Add test file for webhook model
* refactor: Remove webhook validation
* refactor: Remove need for watch on webhooks
* refactor(client): Update webhooks object without syncing
* chore: update webhook documentation
* Fix migrations issues
* chore: remove v2 test helper
* fix(api): Provide webhook type in task scored webhook
* fix(client): Fix webhook deletion appearing to delete all webhooks
* feat(api): add optional label field for webhooks
* feat: provide empty string as default for webhook label
* chore: Update webhook migration
* chore: update webhook migration name
* Start adding google login
* fix local js issue
* implement syntax suggestions
* fix delete social tests
* Add service for authentication alerts
* fix social login tests
* make suggested google sign in changes
* fix accidentally deleted code
* refactor social network sign in
* fix incorrect find
* implement suggested google sign in changes
* fix(tests): Inject fake Auth module for auth controller
* fix(test): prevent social service from causing page reload
* fix loading user info
* Use lodash's implimentation of find for IE compatibility
* chore: increase test coverage around deletion route
* chore: clean up social auth test
* chore: Fix social login tests
* remove profile from login scope
* fix(api): Allow social accounts to deregister as user has auth backup
* temporarily disable google login button
* starting
* adding tests to prove the expected behavior occurs around force starting a quest. part of #7653
* fixing up tests and adding functionality to remove user from quest if they are not in the questing party
* adding code to handle when the user is deleted and added a test around that situation
* fixing up comments