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.
Disappearing input fields
Text replacement in @mentions
UUID visibility in profiles
Purple dot for @mentioned usernames
TypeError preventing RYA
Group Plan member list error
* If user's cron will happen later today, start the task yesterday.
* Added default dayStart to taskDefaults.
* Removed the need to call shouldDo twice to calculate nextDue.
* Revert "Removed the need to call shouldDo twice to calculate nextDue."
This reverts commit e1467f2fc33cfb11e6a4fc667460df6a48b69d45.
* Removed defaults from taskDefault arguments.
* Got user from $store in copyAsTodoModal.vue.
* Fixed tests for taskDefaults to include mock user.
* Fix shouldDo tests when run in GMT timezone.
* Added test to taskDefault; added utcOffset to taskDefault.
* Replaced utcOffset with zone.
* Removed erroneous import.
* fix
Newly subscribed accounts receive erroneous notification that they have Mystery Items
* Added unit test for #10496
* Restored a previous unit test
* add hasCancelled method for group/user, prevent cancelling a subscription twice
* wip
* paypal: do not cancel a subscription twice
* make sure hasCancelled and hasNotCancelled return a boolean result
* sort equipment by stat descending in Market (issue #10728)
* fix sorting equipment by PER in Market (new issue?)
* move filter logic into method when sorting equipment in Market
* consolidate sorting in sortedGearItems() into one _orderBy call
* Show accurate experience notifications
Add unit tests for exp notifications
* use array to compute exp and lvl values for notification changes
* Add tests for user loosing xp cases
* Display message on My Guilds page when filters dont' match anything
* Display message on Discover Guilds page when filters dont' match anything
* Display message on My Challenges page when filters dont' match anything
* Display message on Discover Challenges page when filters dont' match anything
* Don't show Load More button when there is nothing to load
* Fix Guild search
Previously was not possible to clear after searching
* fix(groups): more intelligent member actions
* fix(groups): further member action improvements
* fix(groups): don't show "Remove Manager" if user doesn't have authority
* fix(lint): bad if syntax
* fix(groups): unnecessary if on icon
* autocomplete dialog now has ternary operator to determine placement
* added min height to textbox
* fixed spacing according to travisCI
* heightToUse function now retrieves argument from props
* Add remove member option from main task page
* Code refactor for remove member options
* code refactor to avoid loading party multiple times
* fix dispatch to ensure only pulling once from server
* Don't show "no guilds" texts while loading
Unified styling of "no guilds" message with my challenges page
Fixes#10662
* Don't show "no challenges" texts while loading
Add loading indicator (similar to find challenges & my guilds pages)
* Change gray color
* Set challenge icon color
* Decrease mana when removing stat points from int
* Revert "Decrease mana when removing stat points from int"
This reverts commit 5e25e13552.
* add mana when stat updates are saved
* don't allow users to deallocate saved stat points in the ui
* use flag to determine whether to add mana points
* add test for not adding mana points when flag is set
* Revert "add test for not adding mana points when flag is set"
This reverts commit 6e8ff36a79.
* Revert "use flag to determine whether to add mana points"
This reverts commit 274e2d0d33.
* Revert "add mana when stat updates are saved"
This reverts commit 422bd49191.
* move client side stat allocation to when save is pressed
* update displayed total stats during editing
* Fix lint errors
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
* 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
* - 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
* 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
* shared model for chat and inbox
* disable inbox schema
* inbox: use separate model
* remove old code that used group.chat
* add back chat field (not used) and remove old tests
* remove inbox exclusions when loading user
* add GET /api/v3/inbox/messages
* add comment
* implement DELETE /inbox/messages/:messageid in v4
* implement GET /inbox/messages in v4 and update tests
* implement DELETE /api/v4/inbox/clear
* fix url
* fix doc
* update /export/inbox.html
* update other data exports
* add back messages in user schema
* add user.toJSONWithInbox
* add compativility until migration is done
* more compatibility
* fix tojson called twice
* add compatibility methods
* fix common tests
* fix v4 integration tests
* v3 get user -> with inbox
* start to fix tests
* fix v3 integration tests
* wip
* wip, client use new route
* update tests for members/send-private-message
* tests for get user in v4
* add tests for DELETE /inbox/messages/:messageId
* add tests for DELETE /inbox/clear in v4
* update docs
* fix tests
* initial migration
* fix migration
* fix migration
* migration fixes
* migrate api.enterCouponCode
* migrate api.castSpell
* migrate reset, reroll, rebirth
* add routes to v4 version
* fix tests
* fixes
* api.updateUser
* remove .only
* get user -> userLib
* refactor inbox.vue to work with new data model
* fix return message when messaging yourself
* wip fix bug with new conversation
* wip
* fix remaining ui issues
* move api.registerLocal, fixes
* keep only v3 version of GET /inbox/messages
* rename hasAccess to canJoin for challenges
This is so the function won't be used accidentally for other
purposes, since hasAccess could be misinterpretted.
* add isLeader function for challenges
* allow challenge leader to join/modify/end challenge when they're not in the private group it's in
* delete duplicate test
* clarify title of existing tests
* add tests and adjust existing tests to reduce privileges of test users
* fix lint errors
* remove pointless isLeader check (it's checked in canJoin)
* Added Contributor Titles to Names on Hover
* Added Contributor Titles to Names on Hover
* added contributor title text on hover
* added contributor titles on hover in chat
* added contributor titles to text on hover
* Delete .project
* new inbox client
* add tests for sendPrivateMessage returning the message
* update DELETE user message tests
* port v3 GET-inbox_messages
* use v4 delete message route
* sendPrivateMessage: return sent message
* fix
* prevent quest progress message in party chat when user is resting in the inn
* improve comment
* update tests now that the test group includes a new member (sleeping quest participant)
* adjust a test to fix lint failure (and make the test better)
* fix order of element assignments in test array
* Added smartbanner code to suggest iphone/android apps for mobile users
* Installed smartbanner.js as a module and imported css through app.vue
* Changed the logos to use the ones in the existing presskit directory and fixed the import line for the smartbanner component
* Changed smartbanner import to a src include for css and updated js import
* fix(groups): correct timing on updating member quantities
* fix(groups): don't run group cancellation check if we're in invite flow
* fix(groups): update leader when memberCount is 1
* fix(groups): move leader update back--unrelated to group plans fix
* WIP(analytics): add / improve tracking
* fix(groups): revert attempt at tracking on group model
* fix(analytics): track questing based on user data
* each buy-operation now has a getItemType method - typo getItemKey - removed unneeded overrides
* remove commented-out code for purging PMs - no longer needed
https://github.com/HabitRPG/habitica/issues/7940#issuecomment-406489506
* adjust comments
* move cron code when sleeping / resting back into main body of cron code
* rename tests to use consistent terminology for sleeping
* add tests for cron when user is sleeping
* move sleeping tests to same place as non-sleeping test
This matches how the code has sleeping and non-sleeping code mingled.
* replace a broken test with new tests
The deleted test wasn't working correctly. The check that the user's
health hadn't decreased would have worked even if the user wasn't
sleeping because the Daily had been marked completed.
The new tests test both no damage from incomplete Dailies and
that Dailies are reset.
* add tests for Perfect Day buff and rename existing tests for consistent terminology
* remove old test code
* removing duplicate keys
* adding chair assets and wiring them to customize screen
* adding customization data for new wheelchair types
* removing an unused locale key and moving the code style override closer to the affected area
* explicitly re-enabilng linting rule
* adding button-sized chair assets
* updating assets to new resolution
* moving chair keys into component data
* Fixing healing light not being castable on server and client sides when user has already full health
Adding integration test for spell cast of healing light when full health
Adding test for heal cast if user has full health
* Fixing ESLint syntax in the spells test files
* Added mute end date
* Added indefinite mute for users using slurs
* Fixed user reload. Added no longer muted message. Added format for date
* Fixed lint
* correct curl parameter (-X for request method; -x for proxy information)
* fix typo in error message
* fix mistakes in apidocs for allocating Stat Points
* fix(package): update csv-stringify to version 3.0.0
* chore(package): update lcov-result-merger to version 3.0.0
* chore(package): update karma-sinon-chai to version 2.0.0
* fix(package): update bcrypt to version 3.0.0
* fix(package): update validator to version 10.5.0
Closes#10320
* fix(package): update got to version 9.0.0
* chore(package): update karma to version 3.0.0
* Merge branch 'greenkeeper-css' into greenkeeper
The `noNotifications` string was not being used so changing it for
this purpose makes sense. Non-English users will see meaningful
text even before the new text is translated.
* remove duplicate module.exports statement
* remove commented-out footer in Slack slur notification
There's no need for anything to replace this footer.
* swap order of flag actions to put most critical first
This causes moderators to be notified before the flagged message's flagCount is incremented, because if something happens to prevent the flagGroupMessage Promise from resolving, we still want to mods to see the notification.
* limit chat message flagging ability for new players
Players who created accounts less than three days ago can flag posts
but that does not contribute to the posts' flagCount. This prevents
a troll from maliciously hiding innocent messages by creating new
accounts to flag them.
* add tests
* fix other tests
* WIP - prevent multiple notifications
* merge promises to one
* update test, iterate each user
* revert changes in `groups.js` - filter duplicate notifications in `convertNotificationsToSafeJson`
* participant list modal opens, nothing displayed yet
* display participants!
* only need to filter
* change button to link
* prevent scrolling back up when modal opens
* style link as h4
* move css
The default scroll sensitivity of the task columns is 30 px from the bottom of the screen. The collapsed spells drawer renders 32 px from the bottom of the screen intercepting most drag events. Increases the scroll sensitivity to double the height of the blocking element.
Also ignores the Yarn lockfile. `yarn --ignore-engines` builds successfully and tests pass with Node 10.6.0 and MongoDB 4.0.0.
* Fix joinedChallenge achievement being awarded when creating a challenge
* Modify test to check that achievement is not awarded for creating a challenge
* WIP(groups): add shared completion prop
Also fix an issue where the Needs Approval toggle would not read/save
correctly.
* fix(groups): save group options on task create
Also, correct count of assigned members when viewing user is among
assignments
* fix(groups): display correct messages in two places
* fix(tasks): eliminate console error related to filtering
Also localize a group plans string
* WIP(groups): implement single completion for approval workflow
* WIP(groups): Add shared completion handling to no-approval-needed flow
* WIP(groups): cover approval flow case for all-assigned
Also save new field on initial task creation
* fix(tasks): use default sharedCompletion value when creating tasks
* WIP(tests): non-working draft test
* Added completed todo to group query
* WIP(group-tasks): fix bugs, add tests
* refactor(group-tasks): deleteMany op, add more tests
* refactor(group-tasks): move shared completion handling to lib
* WIP(group-tasks): broken refactor
* WIP(group-tasks): await all the things
* Turned complete master task to save
* WIP(group-tasks): show completed
* fix(filtering): don't try to filter if no list is passed
* refactor(group-tasks): load completed to-dos on demand, not at start
* fix(group-tasks): don't double up on repeat visits
* fix(group-tasks): include brief explanation in dropdown
* fix(group-tasks): improve wording some more
* prints first error message only
* update signup error messages, missing password not working (wip)
* remove alerts, show notEmpty, first error only per param, update unit test
* move changes to client side
As reported in #10502, adding a 1 pixel right margin to *all* nodes with
the member-stats class will affect the display when you click on the
avatar as well, which will then break the layout because of that
additional margin.
Instead of adding the margin to .member-stats in general, let's just add
it to the condensed version so that it really just addresses the
flickering on Chrome/Chromium as reported in #10379.
I've tested whether the flickering still happens via a small
xdotool-loop (just to make sure I don't get too shaky with the mouse):
for i in $(seq 500 508); do xdotool mousemove "$i" 250; sleep 5; done
The flickering doesn't happen anymore and the layout in the party
members overview and the stats overview when you click on the avatar is
no longer distorted.
Signed-off-by: aszlig <aszlig@nix.build>
Fixes: #10502
* Turning H2s into anchors to add hand cursor and to create addressable page fragments
adding ref to target individual entries
adding scroll handler to make sure expanded result is in view.
* combining click handler directives as per CR
* changing question display to always render, then hide via CSS, vs only render when state changes.
* updating pug template to include heading in each URL fragment
* simplifying logic & moving to vue-bootstrap accordion since multiple open panels is not required
* adding pointer cursor to FAQ headings
* moving initial hash checking to data prop instead of mounted so it does not trigger oddities on on hash change (re-mount)
* using new pug HTML for bootstrap collapse
* removing extraneous markup
* updating styling to match existing page
* removing fancier than necessary markup, and attendant styles
* using more standard event property
* Added session check before route changes, but express isn't finding route
* Added a logout component. Changed route to logout on server. Typing 'logout' in URL will logout of Vue + Express
* Removed commented text from previous version
* Updated logout function to comply with formatting and eliminate unused blocks
* Added package-lock.json back
* package-lock.json
* recreated package-lock file
* fix(auth): allow logout from direct visit to /logout path
* fix(merge): clean up more misc changes
* fix(merge): remove extra file
* fixing typos in comments. yes, I am that kind of nerd
* replacing push-notify with node-apn in deps and in pushNotifications.js
* updating calling code and tests to use node-apn
* updating APN configs to new format
* migrating team ID and key ID to config.json
* update code to use env variables and add correct topic
* 10282: Added code for blocking party and guild invitations from blocked players, added tests
* 10282: fixed test label
* Update POST-groups_invite.test.js
removed `it.only` which was used for testing
* added 1px margin-right to .member-stats
* added unit test for flicker prevention style
* remove .only() from unit test
* rewrote margin test using computed style
* initial refactor
* add scoredUp and scoredDown values for habits history entries, one entry per habit per day
* fix lint and add initial migration
* update old test
* remove scoreNotes
* dry run for migration
* migration fixes
* update migration and remove old test
* fix
* add challenges migration (read only)
* fix challenges migration
* handle custom day start
* update tasks in migration
* scoring: support cds
* add new test
* fix(group-plans): improved member count accuracy
* fix(migration): don't leave server running after completion
* fix(migration): don't update Stripe for non-Stripe methods
Also fixes a linting issue.
* fix(lint): no comma dangle here
* fix(async): put async token in relevant spot
* fix(lint): still more linting
* fix(async): better handling for async and promises
Also adds additional logging where discrepancies are found.
* feat(migration): provide CSV output
* fix(promises): better pause/resume
* fix(migration): don't update already canceled subs
* fix(groups): also address quantity/memberCount discrepancies
* fix(migration): also log quantity issues
* fix(migration): equation was reversed
* refactor(migration): condense logic, add error catch
* fix(migration): fix root cause of failed quantity update??
* fix(lint): gratuitous parens
* fix(test): expect group to be updated db-side
* fix(migration): actually update quantities?
* fix(groups): roll back unneeded Stripe lib change, refactor migration
* add timestamp to moderator Slack messages
* fix test errors
* import moment, condense formatting
* add timestamp to author_name variable
* update test to include timestamp, fix footer matching
* change ISODate to Date
* update test to include timestamp
* Remove outdated server readme
* Open correct group modal from header
* Update party button after joining party
* Review: fix invite members not working without reload
* Remove invite-modal from group page to prevent duplicates
* Pass correct group to invite modal
* removing the 24px top margin on .modal-dialog .title so boss HP and difficulty line up
* stop overloading title so much and use a properly-scoped style
* removing unnecessary temp vars
* using SCSS color vars as per CR
* using relative font size measurements instead of absolute pixels, and adding popover override CSS to not break quest shop & invite notifications
* removing redundant font declarations
* Fixes asynchronous cron bug that allows cron to run twice for a user within seconds of eachother.
fixes#8991
* Fixing tests.
* Updating assignment to keep user and res.locals.user in sync.
* WIP(report): subscriber task histories
* fix(report): old object ref, return promise, pause/resume
* fix(report): handle 0 Habits 0 Dailies
Also add data for master total of history entries
Added a 'habitica:update-challenge' call to mirror the 'clone-challenge' call. This properly sets the 'cloning' flag and makes things more consistent.
This fixes the a bug related to #10419 described in the #10419 thread
* added responsive scss to allow modals to respond to changing window size
* Remove unecessary space
* moved scss around
* remove unnecessary space
* Adjust left and right panels to be more responsive + moved css for buyQuestModal into its respective vue file (startQuestModal css wasn't working in its vue file... I can't figure out why)
* removed important to get rid of extra scrollbar
* moved css all to one file
* Revert commenting out some cron subscription tests
This reverts commit 47c488967c.
We're going to properly fix these tests, so let's start by reverting the
commit that temporarily disabled these tests in the first place.
Signed-off-by: aszlig <aszlig@nix.build>
* tests/cron: Fix restoring clock on test failure
Ah, the joys of global state... >:-(
Whenever some test failed which has mocked the time using
useFakeTimers(), other test that are run after that test would fail (or
even time out) as well, which is a bit confusing to debug.
Some of the tests even had a cleanup routine in afterEach() but most of
them didn't, so I rearranged them in a way so that we have a clock
variable for *all* of the subtests, which initially is null and then a
cleanup handler (also for *all* of the subtest) calls clock.restore() if
the value isn't null.
In order to avoid calling clock.restore() twice, I have removed all the
clock.restore() calls at the end of the tests setting the clock to a
specific value.
Signed-off-by: aszlig <aszlig@nix.build>
* tests/cron: Fix test for 3-month gift subscription
So this is the actual culprit of the test failures that emerge during
the first two days of a month:
The test group "for a 3-month gift subscription (non-recurring)" creates
a User object available for every test case, which has a subscription
for 3 months beginning at the current time/date.
During each test case the fake timer is set to the second day of the
month to be tested. For the first and second month it's unproblematic
because the subscription is still active, no matter whether the
dateTerminated is set to the first day or the last day of a month.
However, the third month is problematic here, because whenever the
subscription lasts until the first day of the third month it has already
ended after the second day and thus the test fails because the actual
implementation of cron sets plan.consecutive.count to zero (which is
what it's supposed to do).
In order to fix this, I've set dateTerminated for the User object to the
15th of the current month so the subscription lasts long enough to not
trigger the test failure (and also make time zones irrelevant, because
right now there is no TZ offset which is more than half of a month,
especially not while running the test suite).
Signed-off-by: aszlig <aszlig@nix.build>
* remove parallel saves from the code
* fix more unit tests
* do not save users when sending message in buyGift (saved later)
* fix test
* reinstall
* fix tests
* fix tests
* removing duplicate translation key
* fixing typos
* extracting quest prerequisite check. adding check for previous quest completion, if required
* fixing (undoing) static change, adding tests
* more typos
* correcting test failures
* honoring quest prerequisites in quest invite API call. updating format of il8n string replacement arg
* no longer using apiError, use translate method instead (msg key was not defined)
* adding @apiError to docblock as requested in issue
* removing checks on quest invite method. small window of opportunity/low risk
* feat(gdpr) only store necessary data for social login
* feat(gdpr) also store email for social users
* fix(social auth): store emails array instead of single email
* fix(emails): do not get name from old facebook info
* add migration to remove extra data from social profiles
* update migration description
* fix tests
* fix typo in migration file
Whenever one is hovering an item from another user, the bonuses of these
items are shown for the own user. So for example if you're a mage and
view a Royal Magus Robe of another mage, the class bonus is 6.
However if you're a warrior, the class bonus displays as 0 because the
attributes grid is always using the stats for the own user even if
viewing equipment of a different user.
I've fixed this by moving the user object to the properties in
attributesGrid and passing the current user from every other Vue file
that's using attributesGrid.
Not sure whether this is the right approach, as I'm no expert in Vue.js
but some testing with the client now shows the correct values.
Signed-off-by: aszlig <aszlig@nix.build>
* fix(challenges): creator should not join challenge automatically
* change behavior on the client side as well
* update tests and fix membercount
* update tests
* fix tests
* Make nav drop-down cleaner/scrollable
* Stop overriding bootstrap navbar
* Move user menu to top bar in mobile
* Restructure/style first drop-down item
* Add ALL the pretty colors
* Apply menu drop-down re-structure to all menu drop-downs
* Replace curly brace lost during rebase
* Replace divs with semantic markup
Replace `<div>` tags with `<nav>`, `<aside>`, and a list for the nav items.
* Use grid layout
Replace flexbox with CSS grid layout. The right-hand side item is now in its own
grid cell, so the text wraps inside its cell at smaller screen widths.
Undo `<nav>` tag.
* Sort CSS
Sort the remaining CSS property declarations.
* Fix right alignment issue in Safari
Remove `justify-self: end` to fix the right alignment issue in Safari.
* Fix vertical alignment in Edge
Add `align-self: center` but only for MS Edge.
Also removed `position: relative` on the wrapper element for the tabs.
As the help item isn't using absolute positioning anymore we don't need
to set relative positioning on the parent element.
The parsing in the redirects module was simply determining the base host
via trimming off everything up to //, so a BASE_URL like
"http://localhost:3000" will result in the host name "localhost:3000",
which isn't a valid host name.
So the problem here is that BASE_URL_HOST is used for determining
whether the client should be redirected and it's comparing the hostname
of the request object with BASE_URL_HOST.
For example if we have the aforementioned BASE_URL, we get to the
following comparison:
req.hostname !== BASE_URL_HOST
Which expands to:
"localhost" !== "localhost:3000"
So in order to get rid of the port number, we now use url.parse() to get
the right host name.
Signed-off-by: aszlig <aszlig@nix.build>
Some tests were disabled in ba799c67f9 and
10567d81e2, because they tend to
frequently time out after 8 seconds.
Instead of disabling the tests (which IMHO is bad, because tests are
there for a reason), we're now increasing the timeout to 30 seconds just
for these tests.
As requested by @paglias, I've marked the timeout functions with a @TODO
comment, so that the slow tests or the functionality they're testing are
eventually refactored.
I also needed to change the arrow notation for the test cases to use the
function keyword, because otherwise we don't have this.timeout()
available.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @paglias
Whenever the client starts up, the following is emitted in the Firefox
console:
Invalid URI. Load of media resource failed.
All candidate resources failed to load. Media load paused.
This happens because the <source/> tags are preinitialized with a src
attribute of "".
So what we're doing instead is initialize the <audio/> element without
any children and add the children as soon as the first audio file needs
to be played. This also has the advantage that we can determine at
runtime whether the browser supports Ogg/Vorbis or whether we should
fall back to MPEG layer 3 so only one source element is needed.
Signed-off-by: aszlig <aszlig@nix.build>
So far if a task contained Markdown, a system message like this would
have been posted to the group chat:
foo has claimed "Some [link](http://example.org/)"
Also, if the Markdown contained backticked code fragments, the whole
text would be displayed in red except the code part.
The reason for this is because the system message is already in Markdown
and a backticked task text would result in the following Markdown:
`foo has claimed "Foo `bar`"`
Here there are two code blocks, one with `foo has claimed "Foo ` and
another which only has `"`.
This is fixed by simply changing the userIsClamingTask translation
string to not wrap the task text inside a code block, as per @Alys
suggestion.
Signed-off-by: aszlig <aszlig@nix.build>
isBuyingDependentOnPrevious () method checks if item.key of quest is in a list of quests whose unlock condition is not dependent on the completition of previous quest.
* Temporarily disable ctrl-enter to send Guild messages after paste
Disable Ctrl-Enter after pasting, because some users are experiencing issues with accidentally sending their messages after pasting.
* Code style fixes for "Temporarily disable ctrl-enter to send Guild messages after paste"
* Fix issues with variable location
* Fix variables for accidental chat submission features
Moving vatiables for the chat submit timeout to their own variable so they won't be overwritten
* Fix code formatting issues with accidental chat submission code
* Remove leading space from variables to fix lint issues
* Rarranged payment index functions
* Moved gem function
* Increased buy gems test coverage
* Reduced length of functions. Reduced cognitive complexity
* remove inbox from user/stats routes
* remove inbox from news routes
* change signature for authWithHeaders
* do not load inbox in coupons routes
* do not load inbox in challenge routes
* do not load inbox in some members routes
* do not load inbox in chat routes
* begin implementing global webhooks
* add checklist item scored webhook
* add pet hatched and mount raised webhooks (no tests)
* fix typo
* add lvl up webhooks, remove corrupt notifications and reorganize pre-save hook
* fix typo
* add some tests, globalActivity webhook
* fix bug in global activiy webhook and add more tests
* add tests and fix typo for petHatched and mountRaised webhooks
* fix errors and add tests for level up webhook
* wip: add default data to all webhooks, change signature for WebhookSender.send (missing tests)
* remove unused code
* fix unit tests
* fix chat webhooks
* remove console
* fix lint
* add and fix webhook tests
* add questStarted webhook and questActivity type
* add unit tests
* add finial tests and features
* Updated README.md
Added Team Name and Collaborators
* Updated README.md
* Changed Member List number in Guilds
Changed Member List number in Guilds
* remove habitica2.bat
* Updated README.md
* removing file that only contained a reference to a missing folder
* fixing typo
* using full dates to avoid moment warning in tests
* more typos
* sending an empty string to vue bootstrap tooltip (disabling it) if no challenge short name is set
* Fix challenges export CSV error by checking that users still belong to challenge
* Add test for challenge csv export fix
* Update fix for challenge export CSV bug
* Update tests for challenge export CSV to be more complete
* Refactor a test: change some 'let' variables to 'const'
Uses a variable for the number instead of hard-coding it in the locales files.
Removes some old, unused locales strongs and an associated variable
from when we had a million users.
* Began moving group chat to separate model
* Fixed lint issue
* Updated delete chat with new model
* Updated flag chat to support model
* Updated like chat to use model
* Fixed duplicate code and chat messages
* Added note about concat chat
* Updated clear flags to user new model
* Updated more chat checks when loading get group
* Fixed spell test and back save
* Moved get chat to json method
* Updated flagging with new chat model
* Added missing await
* Fixed chat user styles. Fixed spell group test
* Added new model to quest chat and group plan chat
* Removed extra timestamps. Added limit check for group plans
* Updated tests
* Synced id fields
* Fixed id creation
* Add meta and fixed tests
* Fixed group quest accept test
* Updated puppeteer
* Added migration
* Export vars
* Updated comments
* Added more tests for verifyGemPurchase
* Added more tests for subscribe
* Added user is subscribed check
* Reverted gulp task
* Added existence check
* Client POC
We need to wrap each draggable region it its own div or else the
"draggable" element will conflict with each other. This screws up the
styling but that is totally fixable
* Ah that ref was being used after all, changing back
* Scaffold out a new callback for when we drag these things
Next is going to be the hard part: I need to save the sort order for
these to the database. I don't even know if there is a schema but hey
this is the best place to start
* Firefox caching is the problem: don't actually need the wrapper div
So I guess I should try this in chrome and see how it works then come
back to firefox and figure out what the heck is going on
* Scaffolding out our API call to save the sort order
The endpoint doesn't exist yet so we will need to add that
* Ok we are now calling our API endpoint to reorder these things
Of course it doesn't exist yet so you get a 404 when you try, but that
is ok
* Defining api endpoint, a work in progress
In particular I really had ought to use _id for these too, it appears
that the primary way we detect order doesn't even use "key" at all.
* Switching to using the pinned item UUID
This has much better results, but of course the server and client logic
don't match now. Will have to keep working on my splice to make sure
that they are the same
* I thought this would fix our server/client mismatch but it is not it
Something is really wrong with my logic somewhere, maybe I need to
update the db step?
* Moving this logic to the "user" rather than "tasks" and key off path
Path is unique and is less finiky than dealing with string comparisons
with ids. Unfortunately everything is still not working... I suppose
user.update() doesn't care about the position?
* This client code caused quite a lot of problems if you dragged fast
We don't really need it it seems, so off it goes
* Updating markup and CSS so it actually looks good.
Everything is working horray!!
I did just notice the following bug: the popover text sometimes makes it
very annoying to drag because you can't drop over it@
* Cleaning up my comments in the API section user.js
I had a lot of TODOS that are mostly done now
* Fixing a spacing code standards thing
* Turns out we never use type, so we should remove this from the API call
* Adding pinnedItemsOrder into the user schema
And disabling my call in the frontend before I do any more damage
* Halfway to using pinnedItemsOrder
This isn't working yet but it is not going to break it horribly like it
was before.
* Hooking up inAppRewards to always produce sorted information
It is suspicially working right now even though I have not added the
seasonal stuff logic yet...
* Updating the comments in user.js in movedPinnedItem
It turns out that my bandaid fix to just get the ball rolling perfectly
does what I need it to do when we have a length discrepancy. So we are
getting much closer to the final product, just need lots of testing
* Cleaning up code standards kinds of things
* Yay, this fixes the popover issue
I hope this is the right "vue" way to do things, because I tried a bunch
of other things that definately were not the right way to do it. And
this appears to work too
* ** Partial Work ** Starting tests on api call for draggable items
Doesn't work, doesn't compile so don't include in PR!
* Test failing still...
This is worth a save. The api call grabs the seasonal items too, so we
can't get away from using the common functions and calls here to get the
actual list of items
* Okay have the first test passing
Need to clean up my linter problems though
* Planning out the next two tests and fixing my format problems
* 2nd Test case written, this time with the "more" odd case
* Making sure that we didn't mess with pinned items
* Huh... this test doesn't give me the expected result
Drat, I guess I found a bug
* Throw an error when we put garbage in our api call.
Well, before we got user.pinnedItemsOrder filled with a bunch of "null"
entries which is not ideal. it still worked, but isn't this confusing
enough already?
* Cleaning up the multitude of linting problems thanks gulp :)
* Writing tests for inAppRewards.js, but something is wrong
* Fixing my linting errors in inAppRewards tests
These tests still do not run though, so they may fail and I would not
know
* Applying Negue's fixes to inAppRewards.js test
It never occured to me that we shouldn't try to reach the database while
in the common tests. Well, we shouldn't do that, we should use the
common.helpers instead. Thanks!
* Don't unpin non-gear items
Assumes that multiple of bundles, quests, eggs, potions can be bought
* Added tests
* Changed type checking and made variables global
* Lint fix
* protect all paths in user.pre(save using this.isDirectSelected to see if a field is available
* fix linting
* authWithHeaders: specify user fields to exclude instead of the ones to include, add comments, doc and improve test
* add more options to unit helper generateReq and add tests for excluding fields in authWithHeaders
* remove removePunctuationFromString function from test code
It's not needed now that the test banned words don't contain underscores.
* prevent tests accidentally throwing messageGroupChatSpam
This commit makes the user for most tests have contributor tiers so
that the user can't trigger the messageGroupChatSpam error message
(for posting messages too quickly).
This is useful when some of the tests fail due to broken code
because that makes more messages be posted than expected. If the user
doesn't have tiers, the messageGroupChatSpam error message would be
triggered, which gives misleading information about the test failure.
* add tests for banned swear and slur words posted in mixed case
* allow banned word error message to show bad words in the same case the user typed them
* stop using randomly-chosen real banned words in tests
The test modified in this commit had been using real banned words,
which meant that those words were being displayed to the contributors
when the test failed.
NB the 'check all banned words are matched' test also uses the real
banned words but the test failure messages don't show the words.
* improve translatability of bannedWordUsed error message
* allow Hourglasses and gemCapExtra to increase promptly after a multi-month subscription has renewed
* fix existing Hourglass and Gem Cap tests that were wrong
The scenario originally used for these two tests was a six-month recurring
subscription (you can tell that from the starting offset having a non-zero value).
For recurring subscriptions, we do NOT want to increase the consecutive month
benefits as soon as the sixth month starts because the user has already been
given a full six months' benefits in advance and they might cancel the
subscription before it renews later in the sixth month.
Therefore we want to give the extra benefits at the beginning of the seventh
month (ideally we'd give them mid-month in the sixth month when the renewal
happens but we don't have support for tracking renewal dates).
So, the two changed tests were actually not correct for the case
where the offset started as non-zero.
These tests are correct for one-month recurring subscriptions (when the offset
is never set to anything above zero). The user isn't meant to get any consecutive
month benefits until a multiple of 3 months has been reached.
* add tests for one-month recurring subscription before 3x months are reached
* add tests for 3-, 6-, and 12-month recurring subscriptions
The 3-month tests are the most thorough, stepping through the
expected start and end values of consecutive data for a 7-month
range.
The 6-month tests are a bit less thorough since the same code is
used for all multi-month periods.
The discount Google subscription code is used to ensure we keep
support for it.
The 12-month tests are less thorough still, since again the same
code is used.
I'm about to try some more tests with `useFakeTimers`, which should
be a better way to test the code since they won't rely on me having
set the initial values correctly for each test. :) But I wanted to
work through these cases manually first to ensure my understanding
of how the values should change does actually match the code.
* add tests for 1-, 3-, 6-, and 12-month recurring subscriptions using clock changes to simulate passing months
Also fixed the clock call in an unrelated test because it was forming
the date incorrectly (`unix()` can't be used to create a date).
Also changed email@email.email to email@example.com because
email@email.email is potentially a real email address.
* add tests for 3-month gift subscriptions - no extra consecutive benefits given
* add tests for consecutive benefits for 6-month recurring subscription that has incorrect consecutive month data because it started before issue #4819 was fixed
* fix lint errors
* remove outdated subscription tests
* Add tooltip to character buff icon
* Add tooltips for task streak, challenge and broken challenge
* Add tooltips for task menu and due date
* Challenge icon tooltip displays the challenge short name
* update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
* clean up / refactor
* prevent unpin of all items which don't have a pinType
* remove the double boolean casting / fix lint
* Added supression support for pet/mount modals and added mount modal
* Moved create animal
* Fixed raise pet logic
* Added suppresion for stable hatch modal
* Fixed click paw and added growl
* Fixed confirm. Fixed mount name
* Suppresed confirmation
* update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
* clean up / refactor
* prevent unpin of all items which don't have a pinType
* remove the double boolean casting / fix lint
* problem location identified (breaks code)
* problem identification notes
* Add class checking to ES (does not yet notify user)
* Add error message
* Add .gitattributes
Attempting to fix line ending disaster
* package stuff
so I can see what's broken
* add reminder and hopefully fix gitattributes
* Fix lint errors
* Redo surge fail notifs
* exterminate rogue comment, fix gitattributes
* Remove unused import
As per @paglias' request.
* fix(lint): remove extraneous expression
* Delete .gitattributes
* Fix skill key surge -> mpheal
* Show notification only when there are mages in party
* Fix notification being too big and appearing outside the notification div
* Remove unused code
* Only show the notification on parties with 2 or more mages
The caster is a mage, so certainly at least 1 mage will be counted.
* Automated test: mpheal does not heal other mages
* Fix lint error
* Fix typo in test description
* Increase performance of test
* Using target instead of requestion partyMembers again
* Rename variable 'party' to 'partyMembers'
* Update strings in English
* spell -> Skill
This reverts commit 64e86bad91
because the console was showing errors like this:
[Vue warn]: Error in render: "TypeError: this.user is null"
found in
---> <App> at website/client/app.vue
<Root>
* fixes#10173 - Task page search bar only searches task titles, not Notes (#10173)
* Fixing unit test: Test expect task to have note, but it has notes.
* Added links to contact form
* Fixed encoding link. Added link to tavern. Updated copy
* Converted link to cookie link
* Updated domain format
* Updated links
* Added apikey to cookie
* Adding the ability for admins to revoke/reinstate chat privileges and block/unblock users from the profile page.
fixes#10073
* Updating fix to dynamically load user blocked and chat revoked state for admins.
* Fixing pr according to comments.
* Adding check to give master classer acheivement on any master classer series quest completion
fixes#9461
* Fixing concat bug by assigning the variable after concatenation.
* Fixing retry query.
* Change quest completion modal to only close on user acknowledge of clicking ok or 'x'
and update 'x' to acknowledge the quest completion.
* Removing check on header-close.
* Removing unused variable.
* fix: fix quest shop to not use string addition when buying quests
fixes#10115
* Fixing quest purchase quantity interpretted as a string on the server side.
* Adjusting pull-request according to comments.
* Updating according to PR comments.
* Update getClass() for users who have not yet selected a class
* Added tests for members.getClass()
* fix linter errors
* Update test
* Update import in test to point to correct module
* use hasClass() getter where appropriate
* Fix linter error
* Bring buy bg set button in line with title
* Make background sets pretty
* Add checkbox to filter backgrounds
* Review: replace background filter checkbox with toggle
* Remove dashed line from toggle-switch label
* Test: add comma to make es-lint happy
* Move toggle tooltip into toggle-switch template
* Make toggle-switch label optional
* Review: Remove toggle-switch margin
* Added popover stats to costume equipment on the stats page of a profile (#9280)
* Changed popover position to bottom for equip and costume items.
* Fixed indent on line 160
* Changed escaped double quotes to single quotes for readability
* update column.vue, getters/task.js, getters/user.js and add unittests and helpers
* add vue-test-utils pkg + unit test for column.vue
* add unit test column.vue
* update unit tests
* fix linting errors
* downcase updating an email to be consistent with creating
* add tests to ensure downcase of email for create/update
* create migration to downcase existing User objects
* delete 'only'
* change gmail to example
* add trailing comma from lint error
* search for emails with at least one capital letter
* fix query in order to search for any email with at least one capital letter
* batch process effected users with at least one capital in email
* update script for batch process effected users
Remove restriction on mystery/special inventory items that prevents
non-subscribed users from seeing the items. Organize the imports on the
page.
Resolves: Issue #9228
* Show keys to pets immediately
* Ensured keys to pets dissapear after use
* Added resdirect to stable after purchase
* Added mount check and updated keys to mounts and to both
* Added api calls
* Added check for beastmaster progress
* Added mount check for release mounts. Added pets and mount check to release both
* Added actions
* Added catch to common tests
* Added beast count and reload
* Removed extra console log
* `/task/user` `GET` endpoint takes plurals of task types as allowed
parameters, plus another custom `completedTodos` type
* `/tasks/group/:groupId` and `/tasks/challenge/:challengeId`
`GET` endpoints task plurals of task types as allowed parameters
* add tasklist getter
* add unit test + refactor for getters
* add task order sorting + update unit tests
* remove direct access to store.state.tasks
* add tag and search filter back to column.vue + unit tests
* add unit test for task order setting function
* add task filters to helper file + modify taskColumn state access to getter
* update column to get values at runtime. TODO set active filter at runtime
* add TaskColumn init state + daily-due-default
* add check for task type daily before set/reset dailyDueView
* remove unused sortBy import in column.vue
* remove unused sortBy
* pr review requested updates
* pr review clean up updates
* Updated from origin and added invite error fixes
* Update test for capitalization issue
* New error display
Changed app.vue to display error message using error.response.data.message
* made style change for pet item class to have more margins.
* made style change for pet item class to have more margins.
* files got added
* encapsulated the items as stated in #9903
* #9903 moved the css to stable -> petitem.vue for better encapsulation.
* saving pngs
* update on files
* updated files as requested in PR!
* Revert "saving pngs"
This reverts commit a38ea664e1.
* made css changes just to pet slot
* #9982 removed redundant css
* #9982 applied scss to mount slots as well.
* #9982 refactored scss to be in one place.
* #9982 changed selector
* Removed challenge group duplication
* Removed duplication of joined challenge
* Moved helpers to challenge library
* Passed group to function
* Fixed group response
* feat(world-boss): barebones API
* fix(world): use Express respond for better JSON
* fix(api): respond with code 200
* feat(content): canonical Dysheartener desc and Rage
* fix(world-boss): enable progress
* WIP(test): world state API
* WIP(test): refactor world boss setup
* WIP(test): better expectations
* fix(test): more expect polishing
* feat(event): server side World Boss
* fix(strings): accidental deletion
* fix(content): include encouragement after Rage
* refactor(world-boss): address comments
* refresh not working - show avatar transformation
* call store-action from mixin, use mixin from app.vue, add user-target in spells-mixin,
* fix avatar tranformation on user - clean up
* move default message
* fix purchase of cards
* fix casting
* include class bonus in sorting
* wip - show more information in the attributes grid
* attributes tooltip + dialog redesign
* fix stat calculation
* fix spacings
* show class in equip-gear-modal
* fix buy-modal attributes-grid, clean up css
* show attributes popover in profile-stats overview
* add class / purchase type colors to colors.scss - replace colors by variable - clean up
* translate strings
* replaced an outdated link //habitrpg.wikia.com
Since http://habitica.wikia.com is the official link. Also, there are still incorrect paths in the footer menu, such as "Go to Social > Challenges" and others, when 'Challenges' is already on the menu bar.
* fix Party to Guilds _mistake
Here is a simple mistake, because of what does not pass the verification
Adjusts column widths for 'drop' type notifications to prevent .text from overlapping .icon-item.
Adds new 'flavorMessage' property to Snackbar notifications, which overrides standard computed message.
Vertically center XP gain icon/amount.
Fixes unrelated typo in i18n key name.
* testing additional event trigger for sendMessage
* moved keyup event to newmessage
* added keyup event to tavern vue too
* all food items now have version with definite and indefinite article. foodText also adapted in messages json
* modified api.food, and feed, armoire and drop mechanism
* drops now ok, removed dropArticle, corrected feed test
* test correction
* api doc modification for task completion
* Adding support for loading more members for Groups
Addresses issue #9720
Member modal component was only loading the maximum limit for queries
made to _getMembersForItem in /members, except with Challenges, which
was able to display a "Load More" button to retrieve another set of
users from the Challenge.
Made a few changes to how the GET request was being made when querying
for more members, added an easier way to know whether or not to display
the Load More button, and extracted some of the actions that were
too tightly coupled with the membersModal.vue.
* Fixes for failing lint tests
* Removing unnecessary async/await usage
* Fixing party view in header section
* Resolving missed conflict
* Adding necessary data for View Party in index header for web client to load party members
* dailies history date added in scoreTask instead of cron
* fix lint issues
* changes based on feedback. Undo cron code deletion and deleted iteration on scoreTask
* fix lint issues
* add task history entry in cron for dailies that weren't completed
* add history entry after value is fully evaluated
* prevent re-showing buy-modal after buying a card / fix class-badge in member-selection
* show notifications on card purchase
* move string to generic.json
* translation param "profileName"
* Added cache for user styles on chat
* Added loading on new message and other minor checks
* Added null checks
* Updated chat tests
* Added costume preference to chat
* Removed single profile cacheing for new chat messages
* Remove owned gear from cache
* Updated stats to only use buffs
* Added initial bailey api
* wip
* implement new panel header
* Fixed lint
* add ability to mark notification as seen
* add notification count, remove top badge from user and add ability to mark multiple notifications as seen
* add support dismissall and mark all as read
* do not dismiss actionable notif
* mark as seen when menu is opened instead of closed
* implement ordering, list of actionable notifications
* add groups messages and fix badges count
* add notifications for received cards
* send card received notification to target not sender
* rename notificaion field
* fix integration tests
* mark cards notifications as read and update tests
* add mystery items notifications
* add unallocated stats points notifications
* fix linting
* simplify code
* refactoring and fixes
* fix dropdown opening
* start splitting notifications into their own component
* add notifications for inbox messages
* fix unit tests
* fix default buttons styles
* add initial bailey support
* add title and tests to new stuff notification
* add notification if a group task needs more work
* add tests and fixes for marking a task as needing more work
* make sure user._v is updated
* remove console.log
* notification: hover status and margins
* start styling notifications, add separate files and basic functionalities
* fix tests
* start adding mystery items notification
* wip card notification
* fix cards text
* initial implementation inbox messages
* initial implementation group messages
* disable inbox notifications until mobile is ready
* wip group chat messages
* finish mystery and card notifications
* add bailey notification and fix a lot of stuff
* start adding guilds and parties invitations
* misc invitation fixes
* fix lint issues
* remove old code and add key to notifications
* fix tests
* remove unused code
* add link for public guilds invite
* starts to implement needs work notification design and feature
* fixes to needs work, add group task approved notification
* finish needs work feature
* lots of fixes
* implement quest notification
* bailey fixes and static page
* routing fixes
* fixes # this.$store.dispatch(guilds:join, {groupId: group.id, type: party});
* read notifications on click
* chat notifications
* fix tests for chat notifications
* fix chat notification test
* fix tests
* fix tests (again)
* try awaiting
* remove only
* more sleep
* add bailey tests
* fix icons alignment
* fix issue with multiple points notifications
* remove merge code
* fix rejecting guild invitation
* make remove area bigger
* fix error with notifications and add migration
* fix migration
* fix typos
* add cleanup migration too
* notifications empty state, new counter color, fix marking messages as seen in guilds
* fixes
* add image and install correct packages
* fix mongoose version
* update bailey
* typo
* make sure chat is marked as read after other requests
* Added clone api
* Added new clone UI
* Fixed challenge clone
* Fixed lint and added mongo toObject
* Removed clone field, fixed type, fixed challenge task query
* Auto selected group
* Accounted for group balance when creating challenge
* Added check for if user is leader of guild
* Added leader existence check
* Added fix for leader and prizecost equal to
Since the client side code and server side code run independently, the
docker compose process needed to be updated to reflect this change.
This fix included updating the docker-compose files' versions.
* change "Keep/Remove It" to "Keep/Remove Them" when asking about all challenge tasks while leaving a challenge
* change "Leave" button on groups to "Leave Guild" or "Leave Party"
This is because the button is underneath the challenges so this
clarifies that it is referring to the group, not a challenge.
* change "Keep/Remove Them" to "Keep/Remove Tasks"
* Sleep status is tracked by analytics when toggled.
* Modify test: test that analytics is called with 'sleep' event and data passed includes the user's new sleep status
* describe Login Name limitations on registration form and Add Local Auth form
* adjust text in response to this change: c69687f935
* update max length
* update API comments to for `username` restrictions and to use Login Name terminology
We use "login name" rather than "username" in user-visible text
on the website and (usually) when communicating with users because
"username" could be confused with "profile name".
Using it in the docs allows you to search for that term.
* add alphanumeric and length validation for creating new login name (username)
The 'en-US' locale is specified explicitly to ensure we never use
another locale. The point of this change is to limit the character
set to prevent login names being used to send spam in the Welcome
emails, such as Chinese language spam we've had trouble with.
* add error messages for bad login names
* allow login name to also contain hyphens
This is because our automated tests generate user accounts using:
let username = generateUUID();
* allow login names to be up to 36 characters long because we use UUIDs as login names in our tests
* revert back to using max 20 characters and only a-z, 0-9 for login name.
It's been decided to change the username generation in the tests instead.
* disable test that is failing because it's redundant
Spaces are now prohibited by other code.
We can probably delete this test later. I don't want to delete it
now, but instead give us time to think about that.
* fix typos
* revert to login name restrictions that allow us to keep using our existing test code
I'm really not comfortable changing our test suite in ways that
aren't essential, especially since we're working in a hurry with
a larger chance than normal of breaking things.
The 36 character length is larger than we initially decided but
not so much larger that it's a huge problem.
We can reduce it to 20 when we have more time.
* limit username length to 20 chars
* fix tests
* feat(analytics): track challenge and task events
* feat(analytics): add more challenge events
Also tweaks data for better troubleshooting utility
* refactor(analytics): include IDs for challenges/groups
* refactor(analytics): term for award challenge is "close"
* Fixed party member loading
* Fixed quest details
* Fixed party creating
* Fixed challenge habit restore streak permissions
* Fixed fetch recent messages for party
* Adjusted category box placement for challenges
* Fixed zindex for input on group
* Changed reset streak restriction and allowed for adjust streak
There was a change in how the code is run locally and part
of this change included using port 8080. This change includes
the port forwarding for said port in the example file for Vagrant
* Attempt to use party data from the store rather than always fetching it from the API
* Move init code to shown() to prevent unnecessary network requests
* Use store party data in getGroup action if possible to save an API call
* Use store data rather than API call for party in challengeModal; remove unnecessary code in guilds:getGroup action
* Create party:getParty action and employ it in Group and ChallengeModal
* Use store instead of action return for party data
* Change how party data is stored
* Able to see all non class related items in market
* Fix lint errors
* Able to see all non class related items in market
* Fix lint errors
* add test for showing contributor gear
* Added previously owned items to test with eslint exception
* Add support for `multiDaysCountAsOneDay == false` to evasion
`if (dailiesDaysMissed > 1) dailiesDaysMissed = 1;` causes the evasion for-loop to only evaluate once even if `multiDaysCountAsOneDay == false`. This statement isn't necessary because `if (multiDaysCountAsOneDay) break;` will cause the for-loop to evaluate only once if `multiDaysCountAsOneDay == true`. Removing this statement makes the `dailiesDaysMissed` variable unnecessary.
* Moves break statement out of conditional
Also moves the new Keys text strings to the same place as the old ones in the locales file.
Also fixes minor typos in code that was preventing the new text from being displayed.
* Show click on hatching potion when egg is clicked
* Fix translation parameter name
* Show egg as active when clicked
* Remove itemDragStart event handler from egg items
* Change isHatchable to take in potion and egg objects
* Add margin to item popover content
* increased top padding to match main header
referring to issue 9678
https://github.com/HabitRPG/habitica/issues/9678
* adjusted the z value to appropriate levels
z-index adjusted from 99999 to 999
* fix(shops): include seasonal gear in Market class lists
* fix(market): display non-seasonal broken special items
Also fixes a bug where if a current seasonal item was broken, it would show up twice.
* feat(promo): Buy-1-Get-1 Gift Subs
* feat(promo): add explanatory text to subscription screens
Also adds some add'l test coverage and creates a test context for this event
* Added notification for when leader is updated
* Abstracted challenge member search component
* Added challenge member search modal to challenge detail
* Added group search
* initial commit to not show shield when previewing two-hand weapon
* revert error made
* update to fix all combinations of equipping / trying two-handed weapons
* clarify conditional logic
* refactor to let avatar check for twoHanded display/hide logic
* add case when avatar doesn't have weapon equipped
* Fixed block and add icon not showing and the ordering of the buttons. Also fixed and added tooltips for buttons.
* Changed unnecessary change of color in svg icon files and changed tooltip attribute to not be empty
* testing additional event trigger for sendMessage
* moved keyup event to newmessage
* added keyup event to tavern vue too
* removed number.toFixed, changed to placeholder and step
* initial commit to not show shield when previewing two-hand weapon
* revert error made
* update to fix all combinations of equipping / trying two-handed weapons
* clarify conditional logic
* refactor to let avatar check for twoHanded display/hide logic
* list special gear by the `specialClass` - fixes#9485
* only disable the currencly label + value not the amount input - fixes#9492
* disable transformations on equipment previews - fixes#9497
* show boss strength - fixes#9522
* pin time travelers animals - closes#9382
* clean up + package-lock ?
* fix quest info
The `.FlyingPig` css class necessary to re-center the pig in its square
is no longer applied when the square is greyed out. So I am adding that
to the greyed out square. It seems to not have any affect on the other
pets.
* Fix issue #9534 - changed the character-name from $white to $header-dark-background
* changes to #9534 - changed character-name color from -dark-background to -color.
* character-name color is back to #9534
* changed character-name color to -200
* Changed colors for character name and level details #9534
* add another check if previous gear is owned
* respect gear purchase order
* catch error with miscalculation of equipment number floor
* add integration test for proper equipment purchasing order
* fix syntax
* add 'previousGearNotOwned' string
* rewrite logic for different starting levels for wep vs others
* separate and add tests for armor and weapon
* rename variable for clarification
* skip check if itemIndex is NaN
* change obscure NaN check for readability
* change conditional from checking NaN to Int
* Validate that everyX values are integers bounded by 0 and 9999
* Added client side check
* Updated tests
* Added migration for bad dailies
Near idential to the other task migration.
* fix(typo): camelCase function call
* Added initial user projecting in auth and fixed projection for get user tasks
* Added fields to score route
* Added another field to get tasks
* Added group fields to user
* (ISSUE-9353) Fix pinned item alignment
- Get rid of justify-content: space-between to allow flex-start default to be used
- Add margin to direct children (item-wrappers)
* Issue-9353: Change selector to & > div instead of just > for more explicit selection of direct child divs
* Fix rewards item spacing to match Zeplin mockups
- Make sure horizontal/vertical spacing between items is 16px
- Add use of grid if supported, else use flex
* Fixed bug that allows users to complete todo and daily multiple times
* Added tests
* Fix syntax
* Fix existing tests that rely on multiple complete or uncomplete
* Undoes removal of website/client/README.md
* Change sessionOutdated string to reflect separate client needs
* Fix should update history test by changing lastCron
* Prevent options from jumping when selected due to border being added/removed based on active option. Instead, always have a border on the option but set its color when active
* Use gray instead of white border in order to match background so that it isn't visible while unselected. Add margin-bottom back
* Make sure the locked option style remains unchanged
- Nest .locked in .customize-options .option to get specificity
- Override border, border-radius, and margin-top for .locked
- Set the override values to what would be applied without other style changes
* Updated userItemsNotEnough string
* Added a variable to be passed to the deleteSocialAccountText string. This variable name is `magic_word` and is set as DELETE where used
* modified incorrectDeletePhrase to use a variable rather than translatable string for the word DELETE. Updated the DELETE-user test and the user api
* Changed noSudoAccess from translatable string to static
* Changed enterprisePlansEmailSubject from a translatable string to a static string within groupPlans.vue
* Fixed test problems with translation fixes
* Added no sudo access string to api messages
* changed plain string to apiMessage for no sudo access messages
* show `selectMemberModal` to send a card, even if the user doesn't have a party yet
* market - prevent filter reset on pinning items
* hide buy amount for gear, backgrounds, mystery_set, card, rebirth_orb, fortify, armoire - fix mystery set preview in timetravelers
* purchase confirmation on gem / hourglass purchases
* fix lint
* modify sort options for party members
* add unittest for membersModalComponent sort
* updates as requested in PR
* removed duplicates for `class` and `background` from flavour text
* fix linting error thrown by travis ci
* Bugfix: declare variable locally
* Bugfix: fix syntax error
* Bugfix: regex char-class with alternatives
The old implementation used character classes instead of
alternatives. As a consequence, the regex would match:
- a_warrior_0
- r_warrior_0
- m_warrior_0
- o_warrior_0
- r_warrior_0
- |_warrior_0
- h_warrior_0
- ...
The regex will now match:
- armor_warrior_0
- head_warrior_0
- shield_warrior_0
* Remove flag from system messages, throw an error if system messages are flagged
* Modify unflag system message test to check if flagging a system message throws an error
* Move email from nconf to top
You can buy multiple quests from the buy modal, but the quanitity is
never passed to the server. So the client thinks that you are buying the
number you said you did, but the server only buys one regardless. This
can lead to syncing problems down the road.
This is because they're causing problems in housework guilds (alcohol
is used for cleaning) and since it's coming up to Christmas a lot of
guilds are starting to have permissible conversations about drinks,
rum balls, etc.
We might put these back after Christmas but make specific exceptions
for the housework guilds.
When a more advanced word blocker is introduced, we'll be able to
ban alcohol words only in the Tavern. For irony.
* Added challenge member search to progress dropdown
* Added leave challenge modal
* Allowed editing for challenge leader only
* Pevented users from editing challenge task info
* Set default progress default to daily
* Removed reward filters from user challenge progress
* allow banned word / swearword blocker to apply to all public guilds, with specified exceptions
* add another guild
* add more guilds to those that do not have the bannedWords blocker applied
* fix lint errors
* #9354 Indicate that Orb of Rebirth is instant
Clarified the text
* #9354 Indicate that Orb of Rebirth is instant
Reverted changes in all but locales/en
* Update appFooter.vue in attempt to fix#9336
Make whole social circle clickable.
Replace div with `a` tag allowing whole circle to become a link.
* Indent and reformat "Not ready yet" Instagram button.
* fix(style): Fix margin of headers in inventory page
Set the `mb-0` class in h1 header to `mb-4`.
Set the class if `h2` header to `mb-3`.
* fix(style): Fix margin of headers in shops section
Set the `mb-0` class in h1 header to `mb-4`.
Set the class of `h2` header to `mb-3`.
* fix(style): Fix margin of headers in shops adn time traveler section
Set the `mb-0` class in h1 header to `mb-4`.
Set the class of `h2` header to `mb-3`.
* Change chooseClass modal opt out button and tooltip
- Remove hover tooltip from opt out
- Fix centering of choose class button
- Add some margin between opt out and choose class buttons
- Make cursor on opt out text the pointer to make it obvious it's clickable
* Alphabetical order class selector
* Modify relative dueIn time on tasks to be in days
- Normalizes the current time and task due time to the ends of their respective days.
- Returns 'today' if the dates are the same day else uses moment's humanize function to allow for weeks, months, years and so on.
* Modify task due date to appear grey when due the next day
* Prevented title editing on personal page
* Fixed claim/unlclaim from user task page
* Removed task from local on delete
* Immediately show unassigned bar
* Add move to group tasks
* Fixed group member count increase
* Added upgrade when group plan is canceled
* add missing tooltips
* makes sure due date is update correctly, fixes#9436
* do not collapse checklist when casting spells, fixes#9345
* start to fix spells drawer
* fix drawer requiring two clicks to open
* start to fix modals
* fixed cards paddings
* fix notifications not being marked as read
* add tests for reading a notification
* fixed indentation and added tests for reading multiple notifications
* register from home page using enter key
* update bootstrap-vue to 1.0.0-beta.9 - remove all individual bootstrap components and use BootstrapVue into Vue
* change modal action names from show::modal to bv::show::modal
* check if drops are undefined
* fix modal widths - sellModal now using input instead of dropbox
* upgrade to bootstrap 4.0beta
* include package-lock changes
* fix app menu dropdown position
* upgrade bootstrap to beta2 (was missing grid offset and other fixes) - refix header menu position
* fix tags popup (auto width to max not working) - fix filter panel width (adding width: 100% works until max-width)
* show hide logo on different screensize (new css breakpoints - http://getbootstrap.com/docs/4.0/utilities/display/ )
* fix package-lock?
* fix active button style / app header toggle button
* fix package-lock !
* update package lock after merge - new mixin "openedItemRows" to save the "show more/show less" in stable
* mixin naming style
* fix buyQuestModal marginTop
* fix customMenuDropdown position
* fix userDropdown items
* Implemented repeat after completion
* Added tests for repeat after completion in shouldDo.test.js
* Remove lastTicked
* Undoes removal of website/client/README.md
* start updating colors for tasks controls
* finish updating controls colors
* change hoevr behavior
* change transition duration
* update color with transition
* refactor menu wip
* wip
* upgrade vue deps
* fix warnings
* fix menu
* misc fixes
* more fixes
* fix badge
* fix margins in menu
* wip tooltips
* tooltips
* fix checklist colors
* add badges
* fix quick add input
* add transition to task controls too
* add batch add
* fix task filtering
* finish tasks badges
* fix menu
* upgrade deps
* fix shop items using all the same image
* fix animation
* disable client tests until we remove phantomjs
* revert changes to tasks colors
* fix opacity in task modal inputs
* remove client unit tests from travis
* wip task dropdown
* fix z-index for task footer/header
* fixes and add files
* fixes
* bigger clickable area
* more space to open task dropdown
* droddown position
* fix menu position
* make sure other dropdowns get closed correctly
* fixes
* start to fix z-index
* draggable = false for task dropdown
* fix for dropdown position
* implement move to top / bottom
* fix push to bottom
* typo
* fix drag and drop
* use standard code
* wider click area for dropdown
* unify badge look
* fix padding
* misc fixes
* more fixes
* make dropdown scrollable
* misc fixes
* fix padding for notes
* use existing code instead of new props
* test get party challenges by party ID
* tavern challenge tests; failing tests with ID 'party' or 'habitrpg'
* allow finding challenges by groupid 'party' or 'habitrpg'
* use single quotes in strings
* Changes made to satisfy #8163. _cronSignature is set to current time when cron starts so that if cron fails to set _cronSignature to 'NOT_RUNNING' for any reason a new cron can be started after a set amount of time (1 hour for now)
* fix lint errors
* changed cronTimeout to CRON_TIMEOUT
* Changed variable names and comments to be more clear
* Fixed stub for failing test so that it matches new mongo db update call signature
* First pass at unit tests, error messages and some other things need to be determined
* Fixed a tab that snuck in :/
* Fixed lint issues (issues with spaces)
* Fix infix operator spacing
* Created constant. Make sure cron failure test verifies that it is failing for the right reason
* Fixed lint errors
* Removed no longer used uuid import
* Remove gulp/* and gulpfile from ESLint ignores
* Update .eslintrc in local gulp folder
* Start work on refactoring gulp files
* add radix
* Add line-specific eslint exceptions
* removed redundant eslint file for gulp
* add more exceptions
* Add exceptions to main gulpfile.js
* added parseInt to stats.gp so it can add the new value
* added radix parameter to fix lint issue
* revert changes in scoreTask.js
* convert restoreValues into numbers before setting to users.stats
* Add more checks for user achievements
* Began to add ajax request for bailey
* Prevented purchase of locked item
* Refactored notifications to have unique id and use actions
* Added feature banner when gear is bought
* Removed debug code
* Mark group notifications as read
* Fixed lint issues
* Added gem icon to purchase all
This is disabled by default in Firefox for <input> elements.
It can also be enabled document-wide by adding spellcheck=true to the <html> tag, but I haven't done so because I don't know if there might be elements on the page where spell checking is not warranted.
See also: https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck
* Moved pictures of merch items from assets/images/merch/ to /website/static/merch
Image src in merch.vue is linked to the new path.
* Rebased and fixed.
* Reverted changes of package-lock.json
* fix(various): small issues
* Rename "Gold-Purchasable Quests" to "Masterclasser Quest Lines"
* Use "getting_organized" instead of "organization" as task category
* Use pixel gem instead of SVG gem for Market
* Recanvas shop sprites for Fall 2017 seasonal items
* chore(news): update Bailey
[Please see these instructions for adding a pull request](http://habitica.wikia.com/wiki/Using_Habitica_Git#Pull_Request)
[Please see these instructions for adding a pull request](http://habitica.wikia.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API)
[Habitica](https://habitica.com) is an open source habit building program which treats your life like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor.
We need more programmers! Your assistance will be greatly appreciated.
@@ -8,4 +10,3 @@ We need more programmers! Your assistance will be greatly appreciated.
For an introduction to the technologies used and how the software is organized, refer to [Guidance for Blacksmiths](http://habitica.wikia.com/wiki/Guidance_for_Blacksmiths).
To set up a local install of Habitica for development and testing on various platforms, see [Setting up Habitica Locally](http://habitica.wikia.com/wiki/Setting_up_Habitica_Locally).
console.error(`WARNING: ${name} might be too big - ${spriteSize} > ${MAX_SPRITESHEET_SIZE}`);
}
});
if(numberOfSheetsThatAreTooBig>0){
console.error(`${numberOfSheetsThatAreTooBig} sheets might too big for mobile Safari to be able to handle them, but there is a margin of error in these calculations so it is probably okay. Mention this to an admin so they can test a staging site on mobile Safari after your PR is merged.`);// https://github.com/HabitRPG/habitica/pull/6683#issuecomment-185462180
}else{
console.log('All images are within the correct dimensions');
varanimals=["Wolf-Base","Wolf-White","Wolf-Desert","Wolf-Red","Wolf-Shade","Wolf-Skeleton","Wolf-Zombie","Wolf-CottonCandyPink","Wolf-CottonCandyBlue","Wolf-Golden","TigerCub-Base","TigerCub-White","TigerCub-Desert","TigerCub-Red","TigerCub-Shade","TigerCub-Skeleton","TigerCub-Zombie","TigerCub-CottonCandyPink","TigerCub-CottonCandyBlue","TigerCub-Golden","PandaCub-Base","PandaCub-White","PandaCub-Desert","PandaCub-Red","PandaCub-Shade","PandaCub-Skeleton","PandaCub-Zombie","PandaCub-CottonCandyPink","PandaCub-CottonCandyBlue","PandaCub-Golden","LionCub-Base","LionCub-White","LionCub-Desert","LionCub-Red","LionCub-Shade","LionCub-Skeleton","LionCub-Zombie","LionCub-CottonCandyPink","LionCub-CottonCandyBlue","LionCub-Golden","Fox-Base","Fox-White","Fox-Desert","Fox-Red","Fox-Shade","Fox-Skeleton","Fox-Zombie","Fox-CottonCandyPink","Fox-CottonCandyBlue","Fox-Golden","FlyingPig-Base","FlyingPig-White","FlyingPig-Desert","FlyingPig-Red","FlyingPig-Shade","FlyingPig-Skeleton","FlyingPig-Zombie","FlyingPig-CottonCandyPink","FlyingPig-CottonCandyBlue","FlyingPig-Golden","Dragon-Base","Dragon-White","Dragon-Desert","Dragon-Red","Dragon-Shade","Dragon-Skeleton","Dragon-Zombie","Dragon-CottonCandyPink","Dragon-CottonCandyBlue","Dragon-Golden","Cactus-Base","Cactus-White","Cactus-Desert","Cactus-Red","Cactus-Shade","Cactus-Skeleton","Cactus-Zombie","Cactus-CottonCandyPink","Cactus-CottonCandyBlue","Cactus-Golden","BearCub-Base","BearCub-White","BearCub-Desert","BearCub-Red","BearCub-Shade","BearCub-Skeleton","BearCub-Zombie","BearCub-CottonCandyPink","BearCub-CottonCandyBlue","BearCub-Golden"];// all Gen1 mounts
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.