* Fix profile modal tab navigation URLs for both own and other users profiles
- Add routes for /user/profile, /user/stats, and /user/achievements
- Update selectPage() to properly update URLs when switching tabs
- Own profile uses /user/{tab} format
- Other users' profiles use /profile/{userId}#{tab} format
- Parse hash fragments when navigating to other users' profile tabs
- Ensure direct navigation to tab URLs opens correct tab
* Fix undefined userId
* Server now matches usernames case insensitively like client
- Preserves original capitalization in mention text
- Fixes profile links not working with wrong case mentions
* lint fixes
* g1g1 width auto sizing w/padding
* Challenge participants spacing & text sizing fix
* Fix inconsistent profile URL format between own and other users' profiles
- Update profile tab navigation to use consistent URL format for all users
- Redirect old /user/* routes to new format for backward compatibility
- Update all navigation points (dropdown menu, notifications) to use new URLs
* Update End Challenge modal
- Replace dropdown with searchable input (384x32px) for winner selection
- Add visual badge state with gems icons for challenge completion
- Update Delete Challenge flow with refund info and proper styling
- Add close button (X) with opacity hover effect
- Enhance Award Winner button with gem icon and dynamic prize display
- Apply conditional styling based on winner selection state
- Update text colors: Maroon/50 for delete warning, Gray/100 for "OR" text
- Add proper translations for gem/gems and refund description
* lint error fixes
* end challenge modal fixes
* lint fix
* Use existing closeX component, minor UI fixes to close challenge modal
* fix lint
* Delete icon color to match text on close challenge modal
use color field to set delete icon color
* Highlight username on close challenge modal color updates
- Background color on hover: purple-600
- Text color on hover: purple-300
- Changed transition from just background-color to all so both color changes animate smoothly
* Fix strings
* Refactor g1g1 notifications from database-driven to event-based system
Changed g1g1 (gift one get one) notifications to display automatically during event periods instead of requiring database storage. Notifications now appear based on event calendar dates and use sessionStorage for dismissal state.
- Display g1g1 notification when event is active in worldState
- Store dismissal state in sessionStorage with event-specific keys
- Remove dependency on user.notifications database array
- Maintain identical user experience and appearance
* Update prize card to match participants card on challenges
* End Challenge modal UI tweaks
* Prevent false mention highlights
Prevent false mention highlights when a user's display name matches another user's username. The purple mention indicator now only appears for actual @username mentions.
* lint fixes
* Remove mention highlight
* Mention highlighting to only highlight w/username mentions
* Update G1G1 Notification
- Updated text styling for title & description
- Updated button styling
- Updated close button
* lint fix
* Add updated G1G1 notification SVGs
* Don't highlight display name w/mention
* g1g1 UI updates
- Fix sizing of gift SVGs (96px tall)
- Update button to use button element and styles <button class="btn btn-secondary mx-auto">
- Fixed positioning, color, and hover state of close icon (default white 50% opacity, hover 75% opacity)
* Fix g1g1 close icon hover state
Fix hover state of close icon (default white 50% opacity, hover 75% opacity)
* g1g1 close hover state fix
* End challenge UI updates
- Fix modal title positioning
- Fix close icon positioning
- Fix spacing between title and gem graphic
- Fix spacing between label and input field
- Fix search icon position, change input hint to "@Username"
- Set search results text align start/left with 16px starting padding.
- Fix Award Button state
* remove trailing space
* Fix exit hover state on g1g1
* fix g1g1 close icon (directly render close icon)
* new line
* Update z-index of g1g1 close button
* add display name support for mention highlighting
mention highlights now trigger for both username and display name mentions.
* Override default close button color (gray -> white)
(Also revert the renderWithMentions change)
* Fix mention display name test (& fix lint)
* Revert display name mention, strictly only username
Mentions work w/username only (works w/case insensitive as well)
* Improved case-insensitive username matching
* add close-white.svg, replace close.svg on g1g1
* find mentions that match the current user's username (case-insensitive)
* fix lint errors
* end challenge modal UI updates
* Don't change gem color on update
* disabled state button match button.scss syling
* remove padding from g1g1 close
* Directly use button.scss on end challenge modal
* Update disabled state for button.scss
* explicitly set close challenge modal button disabled/enabled state
* fix trailing space
* Add font details (and fix text color) for button disabled state
* Update award winner button min-height & padding
* button.scss button disabled styling updates
* Remove redundant disabled override on award winner button
* lint
* Use single gifts svg, and apply transform to flip horizontally
Remove unneeded gifts_end.svg
* Replaced the hardcoded #1A1B1D color with the $black from colors.scss
* Removed the 0.5em padding w/p-2
* added v-once to the refund text element
* Converted the line-height values from pixel values to multipliers
* Use sprite component for armoire sprite
* use gif version of armoire sprite
* fix(import): sprite component path
---------
Co-authored-by: Kalista Payne <sabrecat@gmail.com>
* select class modal now shows base items, some spacing fixes
* update margin unit
* another smol fix
* two smol CSS updates
* em to rem
* margin update
* i18n string updates (issue #9210)
* change offHand to offHandCapitalized
* added removeTasks to challenge.json
* added hairBangs back to character.json
* added hairBangs back to character.json
* more hairBangs nonsense
* added hairBangs to hair-settings.vue, removed same from character.json
* changed levelUp to levelup in levelUp.vue and achievements.json
* fix duplicate string values
* fixed different strings with same content in different files
* updated test/api/v3 and test/api/v4 with messageTaskNotFound
* Delete POST-tasks_taskId_checklist_itemId_score.test.js
File got copied to a new directory, doesn't need to be here.
* fix: userID token in patrons.vue and heroes.vue
* removed: unused clock of code
* Restored eggsItemType to inventory.json
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* move groups/sidebar to groupSidebar.vue
* lint files
* extract group/party sidebar to rightSidebar.vue
* wip stories with example data
* update stories - wip sidebar re-styling
* message party / group leader + move items to the menu
* update paddings /place for quest section
* invite to party / guild
* update labels (* Party / Guild )
* guild-background to group-background
* correct menu order + missing a label based on the group type
* no quest - styles / layout applied
* quest owner / not started - styles applied + extracted questActions from questDetailsModal.vue to a mixin
* no challenge style
* hover with underlines
* quest-pending area layout / margins
* "Collection Quest/Quest Owner Participating" Styling Done
* group sidebar menu with icons / background
* remove most participate button styles
* fix quest-invite panel
* move "Start Quest" + add "Leave Quest"
* Not Participating + Boss + Rage Quests restyling
* party quest changes - invitedToQuest + button styles + no-items style + view details
* fix icons + rage value + colors
* fix duplicate key
* hide items label if 0 items found + hide pending damage if there is none + sidebar section margin + fix percent calculation 0 => 0%
* combine quest abandon / cancel to one call + hide begin if quest has already started + close modal if quest was canceled
* remove unused translate string
* allow leaving an accepted but inactive quest + disable leave when user is quest leader
* update "are you sure" questions - remove "doubleSureAbort" - add "sureLeaveInactive"
* sidebar margins + menu icon color
* refactored css rules
* improve some styles
* fix button spacing
* fix dropmenu with icon hover
* hide leave quest for leaders + fix quest buttons spacing
* add pending items label
* remove "X items found" label
* first round of fixes
* last v-once
* Update Quest Dialogs (#13112)
* new quest rewards panel + extract questPopover and itemWithLabel
* WIP: questInfo still not applying the row-height..
* split up start-quest-modal into select and detail modal - also rename the current quest-details to be the group-quest-details modal
* remove start-quest-modal from modal-scss
* update package-lock
* WIP before using the quest sidebar branch as a base
* move quest detail actions to the "new" details dialog
* quest details layout for owner / participant
* fix quest rewards - open details modal from sidebar
* apply quest-details dialog styles to the buyQuestModal one
* fix quest reward icons / popover / texts
* WIP back to quest selection
* fix lint
* merge selectQuestModal.vue with questDetailModal.vue + UI for the select quest
* fix margins / layout / labels
* fix quest detail + wip invitationListModal.vue / participantListModal.vue
* fix questmodal user label centered
* fix centered reward items + grouping items and adding a count-badge
* sort quests by AZ or quantity
* invitations modal
* remove console.info
* complete participantListModal.vue + extracted getClassName
* missed a file for getClassName extraction
* fix invitations
* select the actual quest on details
* fix margins on invite to party / start quest buttons
* replace buyQuestModal close button and title
* fix recursion due to the same name
* missing import
* sort quantity by highest first
* fix "Can't find a Quest to start" styles
* fix "your balance" padding
* fix quest collections / drop items
* fix member details in participants list
* fix quest info
* remove nullable because the build doesn't like it (on this file..)
* add questCompleted to the stories + fix getDropName
* replace quest-rewards in questCompleted.vue
* fix questCompleted.vue style
* delete obsolete components
* add missing spritesheets to storebook
* requested pr changes
* refactored fetchMember
* revert optional chaining
* fix merge conflicts
* fix rightSidebar hover colors - $scss var to css var
* overflow auto instead of scroll
* prevent wrapping of quest collections
* rollback to multi line quest items
* use min-width for the quest popover
* 12781 - Add common component for small modal windows
* 12781 - Fix drop cap layout and hide footer
* 12781 - Implement drop cap reached and won challenge modals
* 12781 - Couple small fixes
* 12781 - Remove added drop cap modal test convenience
* Less assumptions in small-modal component
* 12781 - Fix already migrated small modals
* Figured out how to properly test Bootstrap modals
* 12781 - Add unit test for success modal
* 12781 - Some more steps towards integrating successModal.vue
* 12781 - Use small modal mixin in success modal
* 12781 - Optimize templating in successModal
* 12781 - Revert AppFooter additions
* 12781 - Add test case and remove unnecessary method
* challenge won notification: add more info
* update tests
* use new notification on web, fixes#7716
* wip design
* finalize design
* fix markdown rendering
* Loggly-only user support events (#12676)
* feat(analytics): Loggly-only user support events
* fix(analytics): clean up more Unknowns
* wip: allow tracking events from the server
* analytics: allow tracking generic events on the server
* remove console.logs
* remove console.log (client)
* add integration test
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* 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 9b6609ad64.
* 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>
* content: add gems blocks
* gemsBlocks: include ios and android identifiers
* wip: promo code
* split common constants into multiple files
* add second promo part
* geCurrentEvent, refactor promo
* fix lint
* fix exports, use world state api
* start adding world state tests
* remove console.log
* use gems block for purchases
* remove comments
* fix most unit tests
* restore comment
* fix lint
* prevent apple/google gift tests from breaking other tests when stub is not reset
* fix unit tests, clarify tests names
* iap: use gift object when gifting gems
* allow gift object with less data
* fix iap tests, remove findById stubs
* iap: require less data from the mobile apps
* apply discounts
* add missing worldState file
* fix lint
* add test event
* start removing 20 gems option for web
* start adding support for all gems packages on web
* fix unit tests for apple, stripe and google
* amazon: support all gems blocks
* paypal: support all gems blocks
* fix payments unit tests, add tests for getGemsBlock
* web: add gems plans with discounts, update stripe
* fix amazon and paypal clients, payments success modals
* amazon pay: disabled state
* update icons, start abstracting payments buttons
* begin redesign
* redesign gems modal
* fix buttons
* fix hover color for gems modal close icon
* add key to world state current event
* extend test event length
* implement gems modals designs
* early test fall2020
* fix header banner position
* add missing files
* use iso 8601 for dates, minor ui fixes
* fix time zones
* events: fix ISO8601 format
* fix css indentation
* start abstracting banners
* refactor payments buttons
* test spooky, fix group plans box
* implement gems promo banners, refactor banners, fixes
* fix lint
* fix dates
* remove unused i18n strings
* fix stripe integration test
* fix world state integration tests
* the current active event
* add missing unit tests
* add storybook story for payments buttons component
* fix typo
* fix(stripe): correct label when gifting subscriptions
* issue(11266) - Restyle level-up modal with sparkles
* issue(11266) - Add reward display to level up modal
At levels 15, 30, 40 and 60 the earned quests are now shown in the level-up modal.
* issue(11266) - Simplify css and don't use custom footer
* issue(11266) - Don't show pink bars and use colour variables
* prevent some lint warnings by turning off some rules we don't seem to care about
require-prop-types has 167 violations
require-default-prop has 93 violations
* fix some lint warnings by adding eslint-disable-line comments
* prevent lint warnings by moving vue hooks to a different order
* apply some automatic lint fixes
* fix lint error by making line shorter
* prevent lint warnings from whitespace and @input, @click positioning
* revert 723fa38271
Reenables vue/require-prop-types and vue/require-default-prop
* 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>
* wip
* refactor world state
* allow resource to be reloaded when the server is updated
* fix#9242
* fix event listeners
* remove un-needed code
* add tests for asyncResourceFactory reloadOnAppVersionChange
* fix double cron notifications and party members showing up in the header after a party invitation is accepted
* remove console.log
* do not send vm info to loggly due to circular dependency + fix typo
* fix#12181
* do not load invites multiple times in members modal
* add hover to challenge member count
* groups: load members only on demand
* minor ui fixes
* choose class: fix vue duplicate key warning
* minor ui fixes
* challanges: load members on demand
* add loading spinner
* change loading mechanism
* fix loading gryphon issues
* reduce code duplication
* 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