* 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.
* Send a message to the party chat when a quest is aborted
* Added test cases for sending a message to party when quest is aborted
* Restore Group.prototype.sendChat after aborted quest test
* initial work
* new client: working navigation and tasks showing up
* finish header menu and add avatar component
* fix sprites in new client
* initial header version
* initial styling for top menu
* more progress on the header menu
* almost complete menu and avatar
* correctly apply active class for /social and /help
* fix header colors and simplify css
* switch from Roboto to native fonts
* remove small avatar and add viewport
* fixes
* fix user menu with and progress bars
* fix avatar rendeting
* move bars colors to theme
* add site overrides
* fix tests
* shrinkwrap
* fix sprites path
* another try at fixing the sprites path
* another try at fixing the sprites path
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.
* 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
* change food to normal; add variables to choose type of food; add canBuy, canDrop to cake
* reinstate ability to control canBuy and canDrop separately
* 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
* Only unequip Gen 1 pets/mounts when releasing pets/mounts
* Changed mount declaration to match releasePets
* Check if a pet/mount is a drop type instead of checking for its name in the list of pets
* Changed references to pet and mount to petInfo and mountInfo for consistency with releasePets and releaseMounts
* Test that releasePets, releaseMounts, and releaseBoth do not unequip quest pets
* Fixed test names, and tests verify that a pet/mount is/is not a drop pet/mount on release
* Removed unneeded comments