* WIP: #12555
-dayOfMonth takes timezone into account on task update for monthly dailys
-startDate set to start of day in user's tz on task update for monthly
dailys
-tweaked a test so that it's actually testing something
* WIP: 12555
-task.startDate gets set to start of day in user's tz on task creation
and task update
-set preferences.timezoneOffset to nonzero value in certian test user objects
-removed date literals in test:api-v3:integration:tasks:PUT
* change $type to date for task and add new test
* adjust apidocs to reflect type change
* migration test for api date $type change
* minor fixes to migration
* unset instead of set empty string
* add type filter
* fix(todo date migration): make sure the update command works and limit update ops
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
* challenge won notification: add more info
* update tests
* use new notification on web, fixes#7716
* wip design
* finalize design
* fix markdown rendering
* Begin refactoring news API to return individual markdown posts
* Implement simple bailey CMS
* Prevented users with lvl less than 10 from seeing mana
* Added in class checks and notification tests
* Added getter use
* Fixed class check
* chore(i18n): update locales
* 4.60.2
* remove tests that are no longer needed because we won't be purging private messages (#10670)
Ref: this comment from paglias: https://github.com/HabitRPG/habitica/issues/7940#issuecomment-406489506
* remove .only
* allow challenge leader/owner to view/join/modify challenge in private group they've left - fixes#9753 (#10606)
* 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)
* Correct Challenges tooltip in Guild view (#10667)
* Fix new party member cannot join pending quest (#10648)
* Saved sort selection into local storage for later use - fixes#10432 (#10655)
* Saved sort selection into local storage for later use
* Updated code to use userLocalManager module
* Fix initial position item info when selecting one item after another (fixes#10077) (#10661)
* Update lastMouseMoveEvent even when dragging an egg or potion.
* Update lastMouseMoveEvent even when dragging a food item.
* Refactor/market vue (#10601)
* extract inventoryDrawer from market
* show scrollbar only if needed
* extract featuredItemsHeader / pinUtils
* extract pageLayout
* extract layoutSection / filterDropdown - fix sortByNumber
* rollback sortByNumber order-fix
* move equipment lists out of the layout-section (for now)
* refactor sellModal
* extract checkbox
* extract equipment section
* extract category row
* revert scroll - remove sellModal item template
* fix(lint): commas and semis
* Created category item component (#10613)
* extract filter sidebar
* fix gemCount - fix raising the item count if the item wasn't previously owned
* fixes#10659
* remove unneeded method
* fix typo when importing component
* feat(content): Forest Friends Quest Bundle
* chore(sprites): compile
* chore(i18n): update locales
* 4.60.3
* fix(bcrypt): install fork compatible with Node 8
* chore(i18n): update locales
* 4.60.4
* add swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc
* add pinUtils-mixin - fixes#10682 (#10683)
* chore(news): Bailey
* chore(i18n): update locales
* 4.60.5
* Improve rendering banner about sleeping in the inn
See #10695
* Display settings in one column
* Small Updates (#10701)
* small updates
* fix client unit test
* fix uuid validation
* Revert "Small Updates (#10701)" (#10702)
This reverts commit dd7fa73961.
* feat(event): Fall Festival 2018
* chore(sprites): compile
* chore(i18n): update locales
* 4.61.0
* Move inbox to its own model (#10428)
* 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
* 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
* Position inn banner when window is resized
* feat(content): Subscriber Items and Magic Potions
* chore(sprites): compile
* chore(i18n): update locales
* 4.62.0
* 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
* chore(i18n): update locales
* 4.62.2
* chore(news): Bailey
* chore(i18n): update locales
* 4.62.3
* inbox: fix avatar display and order
* Username announcement (#10729)
* 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
* fix(lint): comma
* fix(lint): comma spacing
* chore(i18n): update locales
* 4.63.0
* chore(news): Bailey
* chore(i18n): update locales
* 4.63.1
* fix(usernames): various
Reword invalid characters error
Correct typo in slur error
Remove extraneous Confirm button
Reset username field if empty on blur
Restore ability to add local auth to social login
* fix(auth): account for new username paradigm in add-local flow
* fix(auth): alert on successful addLocal
* chore(i18n): update locales
* 4.63.2
* fix(auth): Don't try to check existing username on new reg
* 4.63.3
* feat(content): Armoire and BGs 2018/10
* chore(sprites): compile
* fix(passport): use graph API v2.8
* chore(i18n): update locales
* 4.64.0
* Begin refactoring news API to return individual markdown posts
* Implement simple bailey CMS
* remove old news markdown
* Correctly display images in bailey modal
* Remove need for newStuff migration
* Add basic tests
* Fix authentication issue
* Fix tests
* Update news model
* add API route to get single post
* remove news admin frontend code
* fix lint error
* Fix merge mixups
* Fix lint errors
* fix api call
* fix lint error
* Fix issues caused by merging
* remove console log
* Improve news display
* Correctly update users notifications
* Fix date display for news posts
* Fix tests
* remove old cache file
* correctly create date
* correctly create promise
* Better check for existance.
* Improve docs
* Fix minor issues
* Add method to get latest post
* fix lint errors
* use correct call for 404
* add comment about old newStuff field
* paginate news
* Fix lint errors
* Remove unnecessary await
* Fix broken tests
* ...
* correct existence check
* fix database queries
* change approach to cached news posts
* fix tests
* Change how news posts are cached
* Fetch last news post at an interval
* Fix typos and other small things
* add new permission for modifying bailey posts
* add test for ensureNewsPoster
* return last news post with legacy api
* Fix test
* Hopefully fix test
* change fields to _id
* Fixes
* Fixes
* fix test
* Fixes
* make all tests pass
* fix lint
* id -> _id
* _id -> id
* remove identical tell me later route from api v4
* fix lint
* user model: fix issues with newStuff
* improve user#toJSONTransform
* fix typo
* improve newsPost.js
* fix(integration tests): do not return flags.newStuff if it was not selected
* fix news controller
* server side fixes, start refactoring client
* more client fixes
* automatically set author
* new stuff: show one post per user + drafts
* change default border radius for modals to 8px
* required fields and defaults
* slit news into its own component and fix static page
* noNewsPoster: move from i18n to apiError
* remove unused strings
* fix unit tests
* update apidocs
* add backward comparibility for flags.newStuff in api v3
* fix integration tests
* POST news: make integration test independent of number of posts
* api v3 news: render markdown
* static new-stuff: add padding and fix when user not logged in
* test flags.newStuff
* api v3: test setting flags.newStuff on PUT /user
* refactor news post cache and add tests
* remove new locales file
* more resilient tests
* more resilient tests
* refactor tests for NewsPost.updateLastNewsPost
* api v4: fix tests
* api v3: fix tests
* can set flags.newStuff in api v4
Co-authored-by: Keith Holliday <keithrholliday@gmail.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: Alys <Alys@users.noreply.github.com>
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Co-authored-by: Carl Vuorinen <carl.vuorinen@gmail.com>
Co-authored-by: Rene Cordier <rene.cordier@gmail.com>
Co-authored-by: Forrest Hatfield <github@forresthatfield.com>
Co-authored-by: lucubro <88whacko@gmail.com>
Co-authored-by: negue <negue@users.noreply.github.com>
Co-authored-by: Alys <alice.harris@oldgods.net>
Co-authored-by: J.D. Sandifer <sandifer.jd@gmail.com>
Co-authored-by: Kirsty <kirsty-tortoise@users.noreply.github.com>
Co-authored-by: beatscribe <rattjp@gmail.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
* Fix bug in challenge tags not converted to normal tags after challenge ended/deleted
* Added test cases to test bug fix
* Set tag.challenge from String to Boolean in tag model schema
* Update existing test with tag challenge set to boolean instead of string
* Added migration file for converting tag challenge field from string to bool
* Implement suggestions from ilnt
* Use mongoose instead of Mock in migration
* Change from update to bulkwrite
* update users individually
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
* Add new API call to complete multiple task scorings in one call
* Improve API response
* Improve saving process
* Improve handling for multiple tasks scored at once
* Handle challenge task errors better
* Improve check for alias
* Improve check for task scorings
* Fix merge errors
* make nodemon ignore content_cache
* Fix completing group tasks
* fix test
* fix tests (again)
* typo
* WIP(a11y): task modal updates
* fix(tasks): borders in modal
* fix(tasks): circley locks
* fix(task-modal): placeholders
* WIP(task-modal): disabled states, hide empty options, +/- restyle
* fix(task-modal): box shadows instead of borders, habit control pointer
* fix(task-modal): button states?
* fix(modal): tighten up layout, new spacing utils
* fix(tasks): more stylin
* fix(tasks): habit hovers
* fix(css): checklist labels, a11y colors
* fix(css): one more missed hover issue
* fix(css): lock Challenges, label fixes
* fix(css): scope input/textarea changes
* fix(style): task tweakies
* fix(style): more button fixage
* WIP(component): start select list story
* working example of a templated selectList
* fix(style): more button corrections
* fix(lint): EOL
* fix(buttons): factor btn-secondary to better override Bootstrap
* fix(styles): standardize more buttons
* wip: difficulty select - style fixes
* selectDifficulty works! 🎉 - fix styles
* change the dropdown-item sizes only for the selectList ones
* selectTranslatedArray
* changed many label margins
* more correct dropdown style
* fix(modals): button corrections
* input-group styling + datetime picker without today button
* Style/margins for "repeat every" - extract selectTag.vue
* working tag-selection / update - cleanup
* fix stories
* fix svg color on create modal (purple)
* fix task modal bottom padding
* correct dropdown shadow
* update dropdown-toggle caret size / color
* fixed checklist style
* sync checked state
* selectTag padding
* fix spacing between positive/negative streak inputs
* toggle-checkbox + fix some spacings
* disable repeat-on when its a groupTask
* fix new checklist-item
* fix toggle-checkbox style - fix difficulty style
* fix checklist ui
* add tags label , when there arent any tags selected
* WORKING select-tag component 🎉
* fix taglist story
* show max 5 items in tag dropdown + "X more" label
* fix datetime clear button
* replace m-b-xs to mb-1 (bootstrap) - fix input-group-text style
* fix styles of advanced settings
* fix delete task styles
* always show grippy on hover of the item
* extract modal-text-input mixin + fix the borders/dropshadow
* fix(spacing): revert most to Bootstrap
* feat(checklists): make local copy of master checklist non-editable
also aggressively update checklists because they weren't syncing??
* fix(checklists): handle add/remove options better
* feat(teams): manager notes field
* fix select/dropdown styles
* input border + icon colors
* delete task underline color
* fix checklist "delete icon" vertical position
* selectTag fixes - normal open/close toggle working again - remove icon color
* fixing icons:
Trash can - Delete
Little X - Remove
Big X - Close
Block - Block
* fix taglist margins / icon sizes
* wip margin overview (in storybook)
* fix routerlink
* remove unused method
* new selectTag style + add markdown inside tagList + scrollable tag selection
* fix selectTag / selectList active border
* fix difficulty select (svg default color)
* fix input padding-left + fix reset habit streak fullwidth / padding + "repeat every" gray text (no border)
* feat(teams): improved approval request > approve > reward flow
* fix(tests): address failures
* fix(lint): oops only
* fix(tasks): short-circuit group related logic
* fix(tasks): more short circuiting
* fix(tasks): more lines, less lint
* fix(tasks): how do i keep missing these
* feat(teams): provide assigning user summary
* fix(teams): don't attempt to record assiging user if not supplied
* fix advanced-settings styling / margin
* fix merge + hide advanced streak settings when none enabled
* fix styles
* set Roboto font for advanced settings
* Add Challenge flag to the tag list
* add tag with enter, when no other tag is found
* fix styles + tag cancel button
* refactor footer / margin
* split repeat fields into option mt-3 groups
* button all the things
* fix(tasks): style updates
* no hover state for non-editable tasks on team board
* keep assign/claim footer on task after requesting approval
* disable more fields on user copy of team task, and remove hover states
for them
* fix(tasks): functional revisions
* "Claim Rewards" instead of "x" in task approved notif
* Remove default transition supplied by Bootstrap, apply individually to
some elements
* Delete individual tasks and related notifications when master task
deleted from team board
* Manager notes now save when supplied at task initial creation
* Can no longer dismiss rewards from approved task by hitting Dismiss
All
* fix(tasks): clean tasksOrder
also adjust related test expectation
* fix(tests): adjust integration expectations
* fix(test): ratzen fratzen only
* fix lint
* fix tests
* fix(teams): checklist, notes
* handleSharedCompletion: handle error, make sure it is run after the user task has been saved
* fix typo
* correctly handle errors in handleSharedCompletion when approving a task
* fix(teams): improve disabled states
* handleSharedCompletion: do not increase completions by 1 manually to adjust for last approval not saved yet
* revert changes to config.json.example
* fix(teams): more style fixage
* add unit tests for findMultipleByIdOrAlias
* exclude api v4 route from apidocs
* BREAKING(teams): return 202 instead of 401 for approval request
* fix(teams): better taskboard sync
also re-re-fix checklist borders
* scoreTasks: validate body
* fix tests, move string to api errors
* fix(tests): update expectations for breaking change
* start updating api docs, process tasks sequentially to avoid conflicts with user._tmp
* do not crash entire bulk operation in case of errors
* save task only if modified
* fix lint
* undo changes to error handling: either all tasks scoring are successfull or none
* remove stale code
* do not return user._tmp when bulk scoring, it would be the last version only
* make sure user._tmp.leveledUp is not lost when bulk scoring
* rewards tests
* mixed tests
* fix tests, allow scoring the same task multiple times
* finish integration tests
* fix api docs for the bulk score route
* refactor(task-modal): lockable label component
* wip loading spinner
* refactor(teams): move task scoring to mixin
* fix(teams): style corrections
* fix(btn): fix padding to have height of 32px
* implement loading spinner
* remove console.log warnings
* fix(tasks): spacing and wording corrections
* fix(teams): don't bork manager notes
* fix(teams): assignment fix and more approval flow revisions
* WIP(teams): use tag dropdown control for assignment
* finish merge - never throw an error when a group task requires approval (wip - needs tests)
* fix taskModal merge
* fix merge
* fix(task modal): add newline
* fix(column.vue): add newline at end of file
* mvp yesterdaily modal
* fix tests
* fix api docs for bulk scoring group tasks
* separate task scoring and _tmp handling
* handle _tmp when bulk scoring
* rya: close modal before calling cron API, prevents issues with modals
* rya: fix conflicts with other modals
* add sounds, support for group plans, analytics
* use asyncResource for group plans
* fix lint
* streak bonus: add comment about missing in rya
* move yesterdailyModal
* fix issues with level up modals and rya
* add comments for future use, fix level up modals not showing up at levels with a quest drop
* handle errors in rya modal
* bundle quest and crit notifications
Co-authored-by: Phillip Thelen <phillip@habitica.com>
Co-authored-by: Phillip Thelen <viirus@pherth.net>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: negue <eugen.bolz@gmail.com>
* Excluding tavern from showing up in GET /groups API when 'guilds' or 'publicGuilds' type parameter is included.
* Fixed test errors.
* Resolved pull request #12438 issues.
Moved Tavern exclusion to Group model, removed Group controller back to the original and resolved test failures.
* Added bannedWordsAllowed attribute to Group attributes
Added an optional Boolean attribute which will determine if banned words are allowed
* Added bannedWordsAllowed attribute to non-settable fields
* WIP(a11y): task modal updates
* fix(tasks): borders in modal
* fix(tasks): circley locks
* fix(task-modal): placeholders
* WIP(task-modal): disabled states, hide empty options, +/- restyle
* fix(task-modal): box shadows instead of borders, habit control pointer
* fix(task-modal): button states?
* fix(modal): tighten up layout, new spacing utils
* fix(tasks): more stylin
* fix(tasks): habit hovers
* fix(css): checklist labels, a11y colors
* fix(css): one more missed hover issue
* fix(css): lock Challenges, label fixes
* fix(css): scope input/textarea changes
* fix(style): task tweakies
* fix(style): more button fixage
* WIP(component): start select list story
* working example of a templated selectList
* fix(style): more button corrections
* fix(lint): EOL
* fix(buttons): factor btn-secondary to better override Bootstrap
* fix(styles): standardize more buttons
* wip: difficulty select - style fixes
* selectDifficulty works! 🎉 - fix styles
* change the dropdown-item sizes only for the selectList ones
* selectTranslatedArray
* changed many label margins
* more correct dropdown style
* fix(modals): button corrections
* input-group styling + datetime picker without today button
* Style/margins for "repeat every" - extract selectTag.vue
* working tag-selection / update - cleanup
* fix stories
* fix svg color on create modal (purple)
* fix task modal bottom padding
* correct dropdown shadow
* update dropdown-toggle caret size / color
* fixed checklist style
* sync checked state
* selectTag padding
* fix spacing between positive/negative streak inputs
* toggle-checkbox + fix some spacings
* disable repeat-on when its a groupTask
* fix new checklist-item
* fix toggle-checkbox style - fix difficulty style
* fix checklist ui
* add tags label , when there arent any tags selected
* WORKING select-tag component 🎉
* fix taglist story
* show max 5 items in tag dropdown + "X more" label
* fix datetime clear button
* replace m-b-xs to mb-1 (bootstrap) - fix input-group-text style
* fix styles of advanced settings
* fix delete task styles
* always show grippy on hover of the item
* extract modal-text-input mixin + fix the borders/dropshadow
* fix(spacing): revert most to Bootstrap
* feat(checklists): make local copy of master checklist non-editable
also aggressively update checklists because they weren't syncing??
* fix(checklists): handle add/remove options better
* feat(teams): manager notes field
* fix select/dropdown styles
* input border + icon colors
* delete task underline color
* fix checklist "delete icon" vertical position
* selectTag fixes - normal open/close toggle working again - remove icon color
* fixing icons:
Trash can - Delete
Little X - Remove
Big X - Close
Block - Block
* fix taglist margins / icon sizes
* wip margin overview (in storybook)
* fix routerlink
* remove unused method
* new selectTag style + add markdown inside tagList + scrollable tag selection
* fix selectTag / selectList active border
* fix difficulty select (svg default color)
* fix input padding-left + fix reset habit streak fullwidth / padding + "repeat every" gray text (no border)
* feat(teams): improved approval request > approve > reward flow
* fix(tests): address failures
* fix(lint): oops only
* fix(tasks): short-circuit group related logic
* fix(tasks): more short circuiting
* fix(tasks): more lines, less lint
* fix(tasks): how do i keep missing these
* feat(teams): provide assigning user summary
* fix(teams): don't attempt to record assiging user if not supplied
* fix advanced-settings styling / margin
* fix merge + hide advanced streak settings when none enabled
* fix styles
* set Roboto font for advanced settings
* Add Challenge flag to the tag list
* add tag with enter, when no other tag is found
* fix styles + tag cancel button
* refactor footer / margin
* split repeat fields into option mt-3 groups
* button all the things
* fix(tasks): style updates
* no hover state for non-editable tasks on team board
* keep assign/claim footer on task after requesting approval
* disable more fields on user copy of team task, and remove hover states
for them
* fix(tasks): functional revisions
* "Claim Rewards" instead of "x" in task approved notif
* Remove default transition supplied by Bootstrap, apply individually to
some elements
* Delete individual tasks and related notifications when master task
deleted from team board
* Manager notes now save when supplied at task initial creation
* Can no longer dismiss rewards from approved task by hitting Dismiss
All
* fix(tasks): clean tasksOrder
also adjust related test expectation
* fix(tests): adjust integration expectations
* fix(test): ratzen fratzen only
* fix(teams): checklist, notes
* fix(teams): improve disabled states
* fix(teams): more style fixage
* BREAKING(teams): return 202 instead of 401 for approval request
* fix(teams): better taskboard sync
also re-re-fix checklist borders
* fix(tests): update expectations for breaking change
* refactor(task-modal): lockable label component
* refactor(teams): move task scoring to mixin
* fix(teams): style corrections
* fix(tasks): spacing and wording corrections
* fix(teams): don't bork manager notes
* fix(teams): assignment fix and more approval flow revisions
* WIP(teams): use tag dropdown control for assignment
* refactor(tasks): better spacing, generic multi select
* fix(tasks): various visual and behavior updates
* fix(tasks): incidental style tweaks
* fix(teams): standardize approval request response
* refactor(teams): correct test, use res.respond message param
* fix(storybook): renamed component
* fix(teams): age approval-required To Do's
Fixes#8730
* fix(teams): sync personal data as well as team on mixin sync
* fix(teams): hide unclaim button, not whole footer; fix switch focus
* fix(achievements): unrevert width fix
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* Issue 10209 - Remove read usages of zone
* Issue 10209 - Add coverage on daysSince and startOfDay cron utility functions
* Issue 10209 - Add unit test for daysUserHasMissed method
* Issue 10209 - Remove usages of deprecated `moment.js#zone` method.
* Issue 10209 - Add helper function to centralise logic
Also simplify timezoneOffsetToUtc function in site.vue
* Issue 10209 - Also add getUtcOffset as method on user
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
* Piggybacking the updating of user tag list.
When a new task is being added to a challenge, added code to update user tag list along with the existing code that already involves syncing / updating the user documents of challenge members.
* Update comment on number of simulatenaeous users to be updated concurrently in TaskQueue.
* Added comment to explain previous commit caaca469f8 (Update comment on number of simulateneous users to be updated concurrently in TaskQueue)
* Added unit tests for testing commit caaca469f8 (Update comment on number of simulateneous users to be updated concurrently in TaskQueue)
* Removed unused lines from newly added test cases
* Implemented lint suggestions
* Update code with changes requested in PR
* Changed the way how memberCount is incremented or decremented.
* Updated the logic for incrementing/decrementing memberCount for parties and guilds.
* Fixed lint errors
* Added relevant comment. Changed the way how memberCount is updated to replace the usage of custom query.
* Fixed lint errors.
* Reverted changes owing to failing tests.
* Added relevant comments. Removed duplicate and unwanted code. Added await for async function call.
* Minor change due to lint error.
* Reverted changes for removing the party member when the menber leaves.
* push notifications: handle some more error codes and when the user is loaded using .lean()
* fix lint
* do not send push notification if message is missing
* add date check
* achievements modal polishing
* refresh private-messages page when you are already on it
* add countbadge knob to change the example
* fix lint
* typos
* typos
* typos
* add toggle for achievements categories
* typo
* fix test
* fix edit avatar modal cannot be closed
* WIP(settings): subscriber page improvements
* WIP(subscriptions): more design build-out
* fix(css): disabled button styles
* fix(css): better Amazon targeting
* fix hide tooltip + align header correctly
* disable perfect scroll
* load messages on refresh event
* fix header label + conversation actions not breaking layout on hover
* WIP(g1g1): notif
* WIP(g1g1): notif cont'd
* fix(test): snowball change
* fix(event): feature NYE card
* chore(sprites): compile
* fix(bgs): include TT required field
* add gifting banner to the max height calculation
* chore(event): enable winter customizations
* WIP(gifting): partial modal implementation
* feat(gifting): select giftee modal
* fix(gifting): notification order, modal dismiss
* Begin implementing sign in with apple
# Conflicts:
# package-lock.json
# website/common/script/constants.js
# website/server/libs/auth/social.js
# website/server/models/user/schema.js
* Add apple sign in button to website
* fix lint errors
* fix config json
* fix(modals): correct some repops
* fix(gifting): style updates
* fix(buy): modal style changes
* fix(modals): also clean out "prev"
* Attempt workaround for sign in with apple on android
* temporarily log everything as error
* refactor(modals): hide in dismiss event
* fix temporary test failure
* changes to sign in with apple
* fix: first batch of layout issues for private messages + auto sizing textarea
* fix(modals): new dismiss logic
* fix(modals): new dismiss no go??
* Only use email scope
* print debugging
* .
* ..
* ...
* username second line - open profile on face-avatar/conversation name - fix textarea height
* temporarily disable apple auth and just return data for debugging
* Hopefully this works
* .....
* WIP(subscription): unsubscribed state
* .
* ..
* MAYBE THIS ACTUALLY WORKS???
* Implement apple sign in
* fix some urls
* fix urls
* fix redirect and auth
* attempt to also request name
* fix lint error
* WIP(subscription): partial subscribed
* chore(sprites): compile
* Change approach so that it actually works
* fix config error
* fix lint errors
* Fix
* fix lint error
* lint error
* WIP(subscription): finish subscribed
* refresh on sync
* new "you dont have any messages" style + changed min textarea height
* new conversationItem style / layout
* reset message unread on reload
* chore(npm): update package-locks
* fix styles / textarea height
* feat(subscription): revised sub page RC
* list optOut / chatRevoked informations for each conversation + show why its disabled
* Improve apple redirect view
* Fix apple icon on group task registration page
* WIP(adventure): prereqs
* Block / Unblock - correct disabled states - $gray-200 instead of 300/400
* canReceive not checking chatRevoked
* fix: faceAvatar / userLink open the selected conversation user
* check if the target user is blocking the logged-in user
* fix(subs): style tweaks
* fix(profiles): short circuit contributor
Attempted fix for #11830
* chore(sprites): compile
* fix(content): missing potion data
* fix(content): missing string
* WIP(drops): new modal
* fix(subs): moar style tweaks
* check if blocks is undefined
* max-height instead of height
* fix "no messages" state + canReceive on a new conversation
* WIP(adventure): analytics fixes etc
* Improve apple signin handling
* fixed conversations width (280px on max 768 width page)
* feat(adventure): random egg+potion on 2nd task
* fix(lint): noworkies
* fix(modal): correctly construct classes
* fix(tests): expectations and escape
* Fix typo
* use base url from env variables
* fix lint
* call autosize after message is sent
* fix urls
* always verify token
* throw error when social auth could not retrieve id
* Store emails correctly for apple auth
* Retrieve name when authenticating through apple
* Fix lint errors
* fix all lint errors
* fix(content): missing strings
* Revert "always verify token"
This reverts commit 8ac40c76bfa880f68fa3ce350a86ce2151b9cf95.
# Conflicts:
# website/server/libs/auth/social.js
* Correctly load name
* remove extra changes
* remove extra logger call
* reset package and package-lock
* add back missing packages
* use name from apple
* add support for multiple apple public keys
* add some unit and integration tests
* add apple auth integration test
* tweak social signup buttons
* pixel pushing
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: negue <eugen.bolz@gmail.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
* fix(webhooks): don t parse response as json
* upgrade got to version 10
* remove old header
* fix tests
* fix email auth
* add migration
* update email error
* split migration in two
* todo comment
* add failures field to webhooks and sanitize
* implement logic
* use update instead of save
* specify timeout and maximum number of retries
* add tests
* WIP(adventure): prereqs
* WIP(drops): new modal
* WIP(adventure): analytics fixes etc
* feat(adventure): random egg+potion on 2nd task
* fix(lint): noworkies
* fix(modal): correctly construct classes
* fix(tests): expectations and escape
* fix(first-drops): address comments
* fix(first-drops): don't give random drops until first drops
* fix(drops): remove more Level 3 references
* refactor(drops): no need for cloning
* refactor(drops): unnecessary export
* fix(first-drops): force sync
* fix(first-drops): move to server
* fix(first-drops): escape in case we get here with >0 items
* fix(lint): line length
* fix(pet-food): remove unused string
Introduce a new error type blockedToSendToThisUser for the cases where you have blocked a player from sending private messages to you, if you try to message them or if you try to transfer gems to them, you will see the error "You can't send to this player because you have block this player."
* Implement atomic user challenges update
Prevents multiple concurrent requests from passing through
Fixes#11295
* Move user challenges update to separate method
* Rename challenge syncToUser to syncTasksToUser
Now that adding the challenge to user is separated, this methods main purpose is to sync the tasks
* Fix lint errors
* Strip markdown from push notifications
* Revert "Strip markdown from push notifications"
This reverts commit 4741e584c63031d0d4609e18a4e4f082d4c4e72e.
* correctly set type for mention push notifications
* Add unformattedText field to chat messages
* fiix lint errors
* Add check that markdown formatting is stripped from messages
* Add check for markdown formatting in messages.
* move the update username route to v3 (#10836)
* Add API Call to retrieve auto-complete options for usernames
* Create links to users profile in chat messages
* Begin adding server-side autocomplete to web client
* Add Test to opt out of username being searchable
* Fix issue with username highlighting
* Correctly update message text when using autocomplete
* remove old autocomplete component
* Improve chat input design
* rewrite mongoose migration to avoid using recursion
* fixes
* select more fields
* use lean and .update
* fix(tests): correct expects
* fix(tests): linting & more expects
Also one more tweak for invite validation responsiveness
* chore(news): Bailey
* chore(i18n): update locales
* 4.70.0
* fix(chat): less intrusive highlight and better margins
* fix(chat): more width tweakage
* feat(content): Oddballs Bundle
Also includes one more tweak to @mention text highlighting
* chore(sprites): compile
* chore(i18n): update locales
* 4.71.0
* groupChatReceived webhook fix (#10802)
* Moved sendGroupChatReceivedWebhooks to group.sendChat function.
* Added test for new functionality.
* Set width on .custom-control-label (#10840)
Set `width: 100%` on the `.custom-control-label`.
Although `overflow-wrap: break-word` is set on the parent `.checklist-item` element, it doesn't seem to take effect unless a width is set on the label.
* Very large Guild member counts overflow the badge #10753 (#10812)
* Update superagent to the latest version 🚀 (#10848)
* fix(package): update superagent to version 4.0.0
* chore(package): update lockfile package-lock.json
* fix(chat): prevent duplicate messages, closes#10823
* Fix for #10814, prevent ParallelSave errors (#10852)
* fix(group leave): prevent ParallelSave errors while leaving a group with multiple group or challenge tasks
* fix typo
* move computed-props to methods - refactor mountItem to use the states inside (#10853)
* feat(content): Frost Hatching Potions
* chore(sprites): compile
* chore(i18n): update locales
* 4.72.0
* fix(stable): remove progress number from petItem
* add two slurs - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc
* more checks on the item.klass, also added the specialClass checks (#10859)
* feat(content): Turkey Day 2018
* chore(sprites): compile
* chore(i18n): update locales
* 4.73.0
* chore(i18n): update locales
* 4.73.1
* feat(footer): always show expanded footer (#10862)
* Fixes issue #10857 ("Tags have extra space at the bottom when they should be centered") (#10861)
* Fix for #10857 centered category tag text
* Fixes#10857 and #10856 display tag markdown.
* Attach client to chat messages (#10845)
* Attach client to chat messages
* Word
* Design tweaks
* Fix potential error
* chore(event): end Thanksgiving tweaks
* chore(i18n): update locales
* 4.73.2
* Improve chat input design
* Fix test errors
* Move tier icons import to index
* correctly name event variable
* Debounce autocomplete calls
* optimize mention highlighting
* fix failing tests
* Fix sending private messages
* Cache username autocomplete requests
* optimize autocomplete regex
* Fix lint error
* add optional parameters to limit autocompletion to specific group
* Fix non-profile urls not being usable.
* Correctly handle autocomplete for public and private guilds
* Add check to make sure users don’t search for parties/guilds they are not part of
* fix lint error
* limit autocomplete results to 5
* fix(mentioning): change default, adapt settings control to checkbox
* Improve auto completing
* improve username autocomplete
* Fix merge issue
* remove old code
* Send push notifications on mentions
* Improve handling for sending mention notifications
* Fix lint error
* Update schema.js
* Fix failing test
* Don't send push notification to users who aren't in the party
* Remove tributejs from dependencies
* Add more achievements to notifications list
* use addNotification
* Fix logic to not award stable achievements over and over
* Improve achievement display
* Fix setting notifications for party inviter
* Add tests that notifications are added correctly
* Fix tests
* 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
* wip: createIntro / onboard ui rework
* extract more methods - working body settings component
* move justin above the dialog
* extract submenu + fix styles
* white background on items, working example of "none" item, item border radius
* extract options as component
* move more subMenu's to the component
* add chair margins
* move tasks to common/content
* add menu indicator
* extract more parts of onboarding-intro
* refactor / fully converted hair-settings
* extract extra-settings
* fix sprite positions / lint
* extract task-strings to be translatable
* style fixes - hide submenu's if not editing
* style / margin fixes
* more style fixes
* show hair styles at onboarding - use arrowleft/right as svg instead of image fix next color
* finish button style - full set background/purchase button
* fix footer - prev/next hover
* Add Default Tasks + `byHabitica` property
* customize-options click item on the full zone
* purple tasks
* footer animation => none
* fix onboarding task habit up/down
* onboarding circle color/position
* task styles
* fix onboarding position
* show seasonal options
* add hover to (locked-) options
* added the correct behavior of shop-items to onboarding options
* hide hover on active options
* bug fix: free group plan subscription from party/guild is no longer cancelled when leaving a guild
* free group plan subscription from party/guild no longer gets cancelled when leaving a guild
* bug fix: free group plan subscription from party/guild is no longer cancelled when leaving a guild
* free group plan subscription from party/guild no longer gets cancelled when leaving a guild
* Added tests to check if a member of a group plan maintains free subscription when leaving another group without a plan
* Added tests to check if member of a group plan still keeps free subscription when leaving some other group without a plan
* bug fix: free group plan subscription from party/guild is no longer cancelled when leaving a guild
* free group plan subscription from party/guild no longer gets cancelled when leaving a guild
* bug fix: free group plan subscription from party/guild is no longer cancelled when leaving a guild
* free group plan subscription from party/guild no longer gets cancelled when leaving a guild
* Added tests to check if a member of a group plan maintains free subscription when leaving another group without a plan
* Added tests to check if member of a group plan still keeps free subscription when leaving some other group without a plan
* move existing tests for chatRevoked users to 'mute user' describe block
* give consistent names to chatRevoked tests and use const not let
* improve methods for restoring chat permissions to test users
* add tests for shadow-muting and define constants for flag-related numbers
* update user profile URLs and reverse private/public 'if' statements
* implement shadow muting in the API and schemas
* add interface for mods to turn shadow muting on/off for a user
- checkbox in the Hall
- icon in the user's profile
* mark chat posts as being shadow muted (marking is visible to mods only)
* convert Admin Tools in profile from icons to text; make crown icon a toggle
* move logic for displaying flag count to a computed property
* prevent chat notifications for shadow-muted posts
* merge all changes to one commit of PR #11157 / #11226
* rename the new paged messages route
* rename event, move map-method to the Inbox schema, fix lint
* move `mapMessage`-call to `getUserInbox`
* revert schema.method back to a normal one
* load messages per conversation
* only sort ones in ui
* add contributor to message
* fix correct message layout/message
* mugenScroll on chatMessages
* fix lint, no mugen-scroll, use own scroll handler
* fix height / margin of modal + use button to load more
* fix tests
* user data from inbox
* style "load earlier messages"
* move mapMessage to the inbox api result / extract sentMessage of members-api-controller
* fix test back
* fix test
* keep last scroll position
* just set the Id of the returned message instead of all other properties
* fix add new messages (buttons were hidden) + load more
* item-mounted debounce to trigger the re-scrolling
* 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