Commit graph

1337 commits

Author SHA1 Message Date
Sabe Jones
31385b3e7b
fix(auth): take best guess when multiple accts with same email (#13980)
Co-authored-by: SabreCat <sabe@habitica.com>
2022-05-19 15:32:03 -05:00
SabreCat
bf9a7ea7d9 fix(teams): take user to relevant group from task assignment click 2022-05-13 14:26:14 -05:00
SabreCat
565d33f6a7 Merge branch 'develop' into sabrecat/teams-rebase 2022-05-03 15:53:11 -05:00
Phillip Thelen
38b39b600c
Adminpanel and revamped permissions (#13843)
* create Admin Panel page with initial content from Hall's admin section

* reorganise Admin Panel form and add more accordians

* add lastCron to fields returned by api.getHeroes

* improve timestamps and authentication section

* add party and quest info to Admin Panel, add party to heroAdminFields

* move Admin Panel menu item to top of menu, make invisible to non-admins

* remove code used for displaying all Heroes

* add avatar appearance and drops section in Admin Panel

* allow logged-in user to be the default hero loaded

* add time zones to timestamp/authentication section

* rename Items to Update Items

This will allow a new Items section to be added.

* add read-only Items display with button to copy data to Update Items section

* remove never-used allItemsPaths code that had been copied from Hall

* update tests for the attributes added to heroAdminFields

* supply names for items and also set information for gear/equipment

* remove code that loads subsections of content

We use enough of the content that it's easier to load it all and
access it through the content object, especially when we're looping
through different item types.

* add gear names and set details to Avatar Costume/Battle Gear section

* make the wiki URLs clickable and make minor item format improvements

* add gear sets for Check-In Incentives and animal ears and tails

* add gear set for Gold-Purchasable Quest Lines

Also merges the existing Mystery of the Masterclassers quest set into it.

* fix error with Kickstarter gear set and include wiki link

* improve description of check-in incentive gear set

* fix description of Items section

* fix lint warnings

* update another test for the attributes added to heroAdminFields

* allow "@" to be included when specifying Username to load

* create GetHeroParty API v3 route to fetch a given user's party data

Only some data from the party will be loaded (e.g., not private
data such as name, description).

Includes tests for the route.

See the next commit for front-end changes that use this.

* display data from a given user's party in admin panel

Only some data from the party will be loaded (e.g., not private
data such as name, description).

Also adds support for finding and displaying errors from the
user's data.

* use new error handling method for other sections

- Time zone differences
- Cron bugs
- Privilege removal (mute/block) - not a bug but needs to be highlighted

* redirect non-admin users away from admin-only page (WIP)

This needs more work. Currently, admin users are also redirected
if they access the page by direct URL or after reload.

* clarify source of items from Check-In Incentives and Lunar Battle quests

* replace non-standard form fields with HTML forms

* add user's language, remove unused export blocks

* convert functions to filters: formatDate, formatTimeZone

* improve display of minutes portion of time zone in Admin Panel

* move basic details about user to a new component

* move Timestamp/Cron/Auth/etc details to a new component - WIP, has errors

The automatic expand and error warnings don't reset themselves when
you fetch data for a new user.

* replace non-standard form fields with HTML forms

Most of this was done in 26fdcbbee51937d39a149a20bf7ccd1cf674ca18

* move Timestamp/Cron/Auth/etc details to a new component (fixed)

* move Avatar and Drops section to a new component

* move Party and Quest section to a new component

* move Contributor Details to new component, add checkbox for admin, add preview

This adds a markdown-enabled preview of the Contributions textarea.

It also removes the code that automatically set contributor.admin
to true when the Tier was above 7.
That feature wasn't secure because the Tier can be accidentally
changed if you scroll while the cursor is over the Tier form field
(we accidentally demoted a Socialite once by doing that and if
we'd scrolled in the other direction we would have given her
admin privileges).

Instead there's now a checkbox for giving moderator-level privileges.
We'll want that anyway when we move to a system of selected
privileges for each admin instead of all admin privileges being
given to all mods/staff.

There's also a commented-out checkbox for giving Bailey CMS
privileges, for when we're ready to use that. The User model doesn't
yet have support for it.

* move Privileges and Gems section to a new component

* rename formatItems to getItemDescription; make other minor fixes

* remove an outdated test description

This "pended" explanation probably wasn't needed after "x" was
removed from "describe" in 2ab76db27c

* add newsPoster Bailey CMS permission to User model and Admin Panel

* move formatDate from mixins to filters

* make lint fixes

* remove development comments from hall.js

I'll be handling the TODO comment and I've left in my "XXX" marker
to remind me

* fix bug in Hall's castItemVal: mounts are null not false

* move Items section to a new component and delete Update Items section

The Update Items section is no longer needed because the new Items
component has in-place editing.

* remove unused imports

* add "secret" field to "Privileges, Gem Balance" section.

Also move the markdownPreview style from contributorDetails.vue to
index.vue since it's used in two components now.

* show non-Standard never-owned Pets and Mounts in Items section

* redirect non-admin users away from admin-only page

This completes the work started in commit a4f9c754ad3886466925de4d8ed9a5ac55d2f999

It now allows admins to access the page when coming from another
page on the site or from a direct link, including if the admin user
isn't logged in yet.

* display memberCount for party

* add secret.text field to Contributor Details

This is in addition to showing it in the Privileges section because
the secret text could be about either troublesome behaviour or
contributions.

* allow user to be loaded into Admin Panel via a URL

This includes:

- router config has a child route for the admin panel with a
Username/ID as a parameter
- loadHero code moved from top-level index page into a new
"user support" index page
- links in the Hall changed to point to admin panel route
- admin panel link added to admin section of user profile modal

* keep list of known titles on their own lines

* sort heroFields alphabetically

No actual changes.

* return all flags for use in Admin Panel and fix Hall tests for flags

Future Admin Panel changes will display more flags.

NB 'flags' wasn't in the tests before, even though two optional
flags were being fetched.
The tests weren't failing because the test users hadn't been given
data for those optional flags.

The primary reason for this change now is to fix the tests.

* show part of the API Token in the Admin Panel

* send full hero object into cronAndAuth.vue

This is a prelude to allowing this component to change the hero.

* split heroAdminFields string into two: one for fetching data and one for showing it

This is because apiToken must be fetched but not shown,
while apiTokenObscured is calculated (not fetched) and shown.

* let admin change a user's API Token

* restore sanity

* remove code to show obscured version of API Token

It will return with tighter permissions for viewing it.

* add Custom Day Start time (CDS) to Timestamps, Time Zone... section

* commit lint's automatic fixes - one for admin-panel changes in hall.js

The other fixes aren't related to this PR but I figured they may
as well go live.

* apply fixes from paglias's comments, excluding style/CSS changesd

The comments that this PR fixes start at
https://github.com/HabitRPG/habitica/pull/12035#pullrequestreview-500422316

Style fixes will be in a future commit.

* fix styles/CSS

* allow profile modal to close when using admin panel link

Also removes an empty components block.

* prevent Admin Panel being used without new userSupport privilege

Also adds initial support for other contributor.priv privileges
and changes Debug Menu to add userSupport privilege

* don't do this: this.hero = { ...hero };

* enhance quest error messages

* redirect to admin-panel home page when using "Save and Clear Data"

The user's ID / name is still in the form for easy refetching.

* create ensurePriv function, use in api.getHeroParty

* fix lint problems and integration tests

* add page title to top-level Admin Panel

Also add more details to a router comment (consistent with a similar
comment) in case it helps anyone.

* fix tests

* display Moderation Notes above Contributions

* lint fix

* remove placeholder code for new privileges

I had planned to have each of these implemented in stages, but
paglias wanted it all done at once. I'm afraid that's too big a
project for me to take on in a single PR so I'm cancelling
the plans for adjusting the privileges.

* Improve permission handling

* Don't report timezone error on first day

* fix lint error

* .

* Fix lint error

* fix failing tests

* Fix more tests

* .

* ..

* ...

* fix(admin): always include permissions when querying user
also remove unnecessary failing test case

* permission improvements

* show transactions in admin panel

* fix lint errors

* fix permission check

* fix(panel): missing mixin, handle empty perms object

Co-authored-by: Alys <alice.harris@oldgods.net>
Co-authored-by: SabreCat <sabe@habitica.com>
2022-05-03 14:40:56 -05:00
Aleksandr Saitgalin
1823f658c6
update user and group in a transaction when creating a group. fixes #12124 (#13730)
* fix #12124

add a transaction for updating user and group
so the user doesn't lose gems when saving the group fails

* use mongoose transaction helper

use the helper instead of manually commiting/aborting
to deal with transient transaction errors

* increase timeout and add console.log outputs

add some logging to a failing test

* Revert "increase timeout and add console.log outputs"

This reverts commit 0c36aaa55fc5607211c0b96c11e865f21788b09e.

* add a test for gems when guild creation fails

test the transaction in createGroup()
make sure user keeps the gems if group.save() rejects

* fix(test): try suggested delay from PR discussion

Co-authored-by: SabreCat <sabe@habitica.com>
2022-04-29 16:47:17 -05:00
SabreCat
40113b0458 Merge branch 'develop' into sabrecat/teams-rebase 2022-04-05 13:56:25 -05:00
Phillip Thelen
55cf2f9795
Improve flows for social auth users (#13862)
* Multiple fixes for social authentication flows

* frontend changes

* add missing computed property

* Improvements to social flows

* fix existing email error

* minor fixes

* fix space

* fix test

* fix lint

Co-authored-by: SabreCat <sabe@habitica.com>
2022-03-31 16:43:16 -05:00
SabreCat
354f3578a2 Merge branch 'develop' into sabrecat/teams-rebase 2022-03-23 20:23:29 -05:00
Sabe Jones
f7f928d1bd
On-the-fly fix for tasks missing from tasksOrder (#13900)
* fix(tasks): revised fix logic, accounting for groups/challenges

* fix(tasks): don't grab individual user tasks in shared list

Co-authored-by: SabreCat <sabe@habitica.com>
2022-03-23 20:17:49 -05:00
SabreCat
33da6b7959 revert of hotfix for further review 2022-03-21 16:28:41 -05:00
SabreCat
9a454daef1 partial revert of hotfix for further review 2022-03-21 16:28:20 -05:00
SabreCat
2828ae660c fix(tasks): correct list repair query 2022-03-18 17:40:09 -05:00
SabreCat
fa27aa8fe7 fix(tasks): self-healing for missing tasksOrder entries 2022-03-18 17:15:20 -05:00
SabreCat
7e73c336dd WIP(teams): stylish and functional multi assign checkboxes 2022-02-17 15:51:28 -06:00
SabreCat
9e527f4f35 WIP(teams): can do To Do's 2022-02-17 15:51:09 -06:00
SabreCat
eaa5f821a4 WIP(multi-assign): functioning multi 2022-02-17 15:50:44 -06:00
SabreCat
fa99458ca4 WIP(multiassign): resume shared completion implementation 2022-02-17 15:50:23 -06:00
Sabe Jones
63e0875f32 fix(teams): allow ticking team checklists 2022-02-17 15:49:34 -06:00
Sabe Jones
1752c08fd9 fix(teams): allow managers to reorder tasks 2022-02-17 15:49:19 -06:00
Sabe Jones
f233c511cc fix(teams): layout issues, error, change timezone format 2022-02-17 15:49:16 -06:00
Sabe Jones
0806391ab8 feat(teams): Day Start and adjust uncheck wording 2022-02-17 15:48:55 -06:00
Sabe Jones
59dc97b75f WIP(teams): fixes, beta banner 2022-02-17 15:47:37 -06:00
Sabe Jones
d53813adc7 WIP(teams): add some analytics, remove extraneous logic 2022-02-17 15:47:02 -06:00
Sabe Jones
248e1c6fe9 WIP(teams): reimplement open tasking 2022-02-17 15:43:28 -06:00
SabreCat
77751223d3 fix(valentines): adjust empty event daterange 2022-02-14 15:20:37 -06:00
Phillip Thelen
6e43d4dc79
Add Transaction log for gem and hourglass changes (#13589)
* Log all gem transactions to database

* Also store hourglass transactions

* Fix tests

* Display transaction history in hall of heroes for admins

* add tests to new API call

* hide transaction settings tab for non admins

* fix(lint): remove console

* fix(lint): various automatic corrections

* fix(transactions): use enum expected pluralizations

* fix api unit tests

* fix lint

* fix failing test

* Fix minor inconsistencies

* Log all gem transactions to database

* Also store hourglass transactions

* Fix tests

* Display transaction history in hall of heroes for admins

* add tests to new API call

* hide transaction settings tab for non admins

* fix(lint): remove console

* fix(lint): various automatic corrections

* fix(transactions): use enum expected pluralizations

* fix api unit tests

* fix lint

* Fix minor inconsistencies

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2022-01-31 15:36:15 -06:00
SabreCat
de477ebb4a Revert "Revert "Revert "Prerequisites to removing Facebook authentication (#13683)"""
This reverts commit e3ffd7acbc.
2022-01-31 14:52:22 -06:00
SabreCat
e3ffd7acbc Revert "Revert "Prerequisites to removing Facebook authentication (#13683)""
This reverts commit b3c466ad5a.
2022-01-27 14:50:04 -06:00
SabreCat
b3c466ad5a Revert "Prerequisites to removing Facebook authentication (#13683)"
This reverts commit 1177ad8b8c.
2022-01-25 09:30:37 -06:00
Phillip Thelen
1177ad8b8c
Prerequisites to removing Facebook authentication (#13683)
* Don't sign in user when trying to connect a social account that was already created

* Log social users into matching local auth accounts

If the social account has an email that already exists as a local user, instead of creating a new account log them into their account and add the social auth to the account

* If possible set local authentication email for social users

* Allow password reset emails to be sent to social login users

* lint fixes

* Fix issues and tests

* fix tests

* Fix lint error.
2022-01-21 15:15:58 -06:00
negue
a1cddcaf17
Feature: new "report a bug" modal (#13530)
* WIP: report a bug api/ui

* fix lint

* add USER_USERNAME

* extend sendTxn tests / checks + fix bug report email

* fix lint

* add more checks to sendTxn - fix bug-report variables

* fix lint / ci

* fix test: reset email config url

* fix test stub

* fix tests

* refactor the variables checks

* lint.

* move bug-report page as a modal

* send user_email to the email

* show true/false instead 1/0

* fix issues

* fix footer report bug email if not logged in

* fix styles/margins

* prefill user's email

* show facebook email if local email not existing

* bugReportSuccessModal.vue

* add BROWSER_UA to mail properties

* extract bugReportLogic to its own lib file for unit test

* test api validators

* fix lint
2021-12-14 19:16:50 -06:00
SabreCat
466aa38999 fix(lint): comma 2021-11-24 11:51:00 -06:00
SabreCat
cd5044e780 Revert "Revert "Set cache to private for the language resources""
This reverts commit c6d1954153.
2021-11-24 07:41:55 -06:00
SabreCat
c6d1954153 Revert "Set cache to private for the language resources"
This reverts commit 90a14ee871.
2021-11-18 15:18:53 -06:00
SabreCat
31469a2d70 Revert "Make the linter happy"
This reverts commit df28670d16.
2021-11-18 15:18:30 -06:00
agares
df28670d16
Make the linter happy 2021-11-18 19:28:44 +01:00
agares
90a14ee871
Set cache to private for the language resources 2021-11-18 19:14:00 +01:00
Natalie L
5d87c2af13
fix: I18n string update (#13588)
* 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>
2021-11-04 16:33:08 -05:00
Benja Appel
c6e7b18e8b
Api task streak default value (#13557)
* Default value for task streak (fix #13372)

* Truncate task streak value decimals on update
2021-10-21 15:47:17 -05:00
Benja Appel
c5b0833bf2
fix cloned challenge task order (#13328) (#13506)
* fix cloned challenge task order (#13328)

* fix lint errors
2021-09-17 16:33:42 -05:00
Melvin
22db983f40
Improve the checklists in the apidocs (#13476) 2021-09-01 18:47:35 -05:00
Sabe Jones
40bf664f20 chore(analytics): various updates to analytics tracking 2021-08-30 16:21:05 -05:00
Sabe Jones
9e9a301f04 chore(analytics): open the task firehose 2021-07-02 14:52:45 -05:00
negue
a8b58815b4
Update Party / Group Sidebar / Quest states (#12793)
* 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
2021-05-28 16:11:43 -05:00
Alec Brickner
f33720e9fd
Drag challenge tasks (#12204)
* Allow challenge tasks to be draggable by leaders and admins

* Drag challenge tasks, ensure they're ordered

* Ensure group tasks are ordered properly, make draggable

* Add tests, fix broken tests

* Resolve merge conflict

* Remove console.log()

* Address code review comments

* Code review fixes

* Fix lint

* Fix importing

* taskManager

* Lint

* Fix collapseChecklist test

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-04-30 16:23:27 -05:00
Carlton McFarlane
a53355872b
Add checks for profanity to profile updates (#12445)
* fix(profile): detect attempt to use banned words as display name. refactor profanity detection method.

* fix(profile): detect attempt to use banned words in blurb. further refactor profanity detection. inform the user their chat privileges have been revoked.

* refactor: add function to normalize Unicode strings and remove diacritics

* fix: improve regEx to prevent false partial matches e.g. 'hello' being recognised as banned words. porting fix from #12309

* fix(profile): refactor of profanity detection for #12445

* fix(profile): add test for swear words in new profile. fix existing tests

* fix(profile): show different error message for attempted slur use in username by new users.

* fix(profile): remove incorrect slur test

* fix(profile): fix slurs not caught at start of end of strings connect by punctuation

* tests(profile): fix tests for profanity checking

* remove exclusive test

* 11865 - update text for slur warnings

* 11865 - remove unused string from locale files

* 11865 - improve naming of banned word usage locale string

* 11865 - improve logic so that differentiated warnings are shown depending on whether a slur or other profanity has been used in a display name

* 11865 - construct slur regexes outside the validation function in which they are used

* 11865 - fix tests
2021-04-30 15:47:39 -05:00
Carl Vuorinen
1d3cf368a1
Send questInvited webhook to the inviter too (#13111) 2021-04-29 14:34:17 -05:00
Sabe Jones
06f6355006 chore(analytics): Gem transfer tracking and shorten task score period 2021-04-13 14:51:19 -05:00
Sabe Jones
676a9348d0 feat(event): March-April goodness 2021-03-23 11:58:21 -05:00
Sabe Jones
96492e5a0e fix(api): correct world, cap level 2021-03-10 15:36:17 -06:00
Alys
1b73c5ac0b adjust apidoc comments to say that "party" works for member routes 2021-02-02 20:13:55 +10:00
Alys
9a8c34f780 remove alias from apidoc Body Parameters for creating a challenge task
https://habitica.com/apidoc/#api-Task-CreateChallengeTasks

Aliases can't be added by the challenge creator as shown by this test:
2dad540d43/test/api/v3/integration/tasks/challenges/POST-tasks_challenge_id.test.js (L77-L87)

That's a requirement because in each user's account, each alias must
be unique, and you can't enforce that if the challenge creator can
assign an alias.
2021-02-01 09:37:20 +10:00
negue
1bccbc03fa
Hotfix: moving pinned items (#12935)
* increase checks for moving pinned items - fixes #10406

* allow to move official pinneditems

* using common object instead of method import
2021-01-25 17:40:18 -06:00
bakerty
db3d233ae5
Make start date and day of month aware of timezones (fixes #12555) (#12696)
* WIP: #12555

-dayOfMonth takes timezone into account on task update for monthly dailys
-startDate set to start of day in user's tz on task update for monthly
dailys
-tweaked a test so that it's actually testing something

* WIP: 12555

-task.startDate gets set to start of day in user's tz on task creation
and task update
-set preferences.timezoneOffset to nonzero value in certian test user objects
-removed date literals in test:api-v3:integration:tasks:PUT
2021-01-10 16:02:40 +01:00
dependabot-preview[bot]
405f744770
build(deps): bump mongoose from 5.11.8 to 5.11.9 (#12927)
* build(deps): bump mongoose from 5.11.8 to 5.11.9

Bumps [mongoose](https://github.com/Automattic/mongoose) from 5.11.8 to 5.11.9.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/History.md)
- [Commits](https://github.com/Automattic/mongoose/compare/5.11.8...5.11.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* fix(join group): update inviter once

* mongoose@5.11.10

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
2021-01-04 21:37:51 +01:00
Shadow
7c0b3612f0
Change $type of date for todos (#12779)
* change $type to date for task and add new test

* adjust apidocs to reflect type change

* migration test for api date $type change

* minor fixes to migration

* unset instead of set empty string

* add type filter

* fix(todo date migration): make sure the update command works and limit update ops

Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
2020-12-24 18:37:09 +01:00
Matteo Pagliazzi
6d34319455
Stripe: upgrade module and API, switch to Checkout (#12785)
* upgrade stripe module

* switch stripe api to latest version

* fix api version in tests

* start upgrading client and server

* client: switch to redirect

* implement checkout session creation for gems, start implementing webhooks

* stripe: start refactoring one time payments

* working gems and gift payments

* start adding support for subscriptions

* stripe: migrate subscriptions and fix cancelling sub

* allow upgrading group plans

* remove console.log statements

* group plans: upgrade from static page / create new one

* fix #11885, correct group plan modal title

* silence more stripe webhooks

* fix group plans redirects

* implement editing payment method

* start cleaning up code

* fix(stripe): update in-code docs, fix eslint issues

* subscriptions tests

* remove and skip old tests

* skip integration tests

* fix client build

* stripe webhooks: throw error if request fails

* subscriptions: correctly pass groupId

* remove console.log

* stripe: add unit tests for one time payments

* wip: stripe checkout tests

* stripe createCheckoutSession unit tests

* stripe createCheckoutSession unit tests

* stripe createCheckoutSession unit tests (editing card)

* fix existing webhooks tests

* add new webhooks tests

* add more webhooks tests

* fix lint

* stripe integration tests

* better error handling when retrieving customer from stripe

* client: remove unused strings and improve error handling

* payments: limit gift message length (server)

* payments: limit gift message length (client)

* fix redirects when payment is cancelled

* add back "subUpdateCard" string

* fix redirects when editing a sub card, use proper names for products, check subs when gifting
2020-12-14 15:59:17 +01:00
jbusa22
f077e40c4c
use or clause for display name and username search (#12820)
* use or clause for display name and username search

* update styling

* More style fix

* update comment and regex
2020-11-30 20:05:58 +01:00
Denys Dorokhov
3ce182d0dc
Feature/enhance get memebers for a challenge fixes #12481 (#12716)
* refactor(api-members): separate handler for the GET /challenges/:challengeId/members route

* refactor(api-members): challenges-related code removed from _getMembersForItem handler function

* feat(api-members): added support to the new includeTasks query parameter for the GET /challenges/:challengeId/members route

* fix(api-members): adjustments to the GET /challenges/:challengeId/members route

* fix(api-members): merge of _getMembersTasksFromChallenge and additional check for a test suite

* refactor(api-members): includeAllMembers query parameter got removed from the GET /challenges/:challengeId/members route

* GET-challenges_challengeId_members.test.js: use _id

* members.js: use _id instead of id

* use id instead of _id

* _id instead of id

Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
2020-11-30 20:04:17 +01:00
Matteo Pagliazzi
7745a0e65a fix(analytics): always use mock service in development 2020-11-29 23:15:26 +01:00
Matteo Pagliazzi
6b3a6eb59f fix(analytics): allow tracking static pages events when the user is not authenticated 2020-11-29 20:15:12 +01:00
Matteo Pagliazzi
103b4cb8a8 docs(get user challenges): document all query parameters for the GET /challenges/user API route 2020-11-28 19:32:08 +01:00
Matteo Pagliazzi
f7b4d25657 update apidoc 2020-11-20 09:18:16 +01:00
Matteo Pagliazzi
284cfde935
Mandatory pagination for GET /challenges/user (#12792)
* BREAKING: require pagination for GET /challenges/user

* fix tests

* remove unused test
2020-11-19 16:18:11 -06:00
Sabe Jones
4a93201f50 chore(analytics): track Challenge prizes 2020-11-17 15:50:44 -06:00
Matteo Pagliazzi
2e59260149 Revert "Revert "Analytics: track generic events through the server (#12735)""
This reverts commit 9d6fb2ca26.
2020-11-09 11:34:20 +01:00
Sabe Jones
9d6fb2ca26 Revert "Analytics: track generic events through the server (#12735)"
This reverts commit 48dbe547c0.
2020-11-05 15:44:30 -06:00
Matteo Pagliazzi
ea766251c2 Merge branch 'release' into develop 2020-10-28 23:24:42 +01:00
Matteo Pagliazzi
48dbe547c0
Analytics: track generic events through the server (#12735)
* 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>
2020-10-28 22:39:19 +01:00
Sabe Jones
2a98b5b7bf
Loggly-only user support events (#12676)
* feat(analytics): Loggly-only user support events

* fix(analytics): clean up more Unknowns
2020-10-28 17:05:54 +01:00
Matteo Pagliazzi
869d2df4fa Merge #12654
Fixes #12417
Squashed commit of the following:

commit 1f074175c480a638cf61e2c72ca57cdc6f8699b6
Author: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Date:   Mon Oct 26 10:57:23 2020 +0100

    fix(i18n): remove unused string questLevelTooHigh

commit 12cc74002ec87c14cc000b008454f34475fd3636
Merge: 4fc260e552 ad9b551de3
Author: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Date:   Mon Oct 26 10:50:39 2020 +0100

    Merge branch 'feature/level-locked-quests-should-be-used-at-any-level' of https://github.com/hamboomger/habitica into hamboomger-feature/level-locked-quests-should-be-used-at-any-level

commit ad9b551de3b85d7e60c93c011ef82720c79a4787
Author: hamboomger <hamboomger@gmail.com>
Date:   Thu Oct 8 13:34:19 2020 +0300

    fix(quests): Quests that are level-locked for purchase can now be used at any level
2020-10-26 10:58:50 +01:00
Shadow
734e997345
Prevent the removal of a quest owner from a group, take 2 (#12695)
* add cannotRemoveQuestLeader string

* throw error when member is quest leader

* add the new apidoc error

* change i18n key name

* fix apidoc formatting and change key in throw()

* add test for preventing removing quest owner

* patch(groups): change error codes
2020-10-26 10:46:43 +01:00
negue
bad3f82dfb
Inventory: fixes / layout (#11948)
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2020-10-19 23:54:51 +02:00
Alys
8b1c009990
fix "push to bottom" for user tasks in API (#12659)
Also:
- Fix the test for this which has been equally broken.
- Simplify apidoc position info and make consistent in similar routes.
- Replace non-ascii characters in apidoc comment.
2020-10-17 17:58:48 +02:00
Phillip Thelen
d9e774dd77
Implement Bailey CMS API (#10739)
* Begin refactoring news API to return individual markdown posts

* Implement simple bailey CMS

* Prevented users with lvl less than 10 from seeing mana

* Added in class checks and notification tests

* Added getter use

* Fixed class check

* chore(i18n): update locales

* 4.60.2

* remove tests that are no longer needed because we won't be purging private messages (#10670)

Ref: this comment from paglias: https://github.com/HabitRPG/habitica/issues/7940#issuecomment-406489506

* remove .only

* allow challenge leader/owner to view/join/modify challenge in private group they've left - fixes #9753 (#10606)

* rename hasAccess to canJoin for challenges

This is so the function won't be used accidentally for other
purposes, since hasAccess could be misinterpretted.

* add isLeader function for challenges

* allow challenge leader to join/modify/end challenge when they're not in the private group it's in

* delete duplicate test

* clarify title of existing tests

* add tests and adjust existing tests to reduce privileges of test users

* fix lint errors

* remove pointless isLeader check (it's checked in canJoin)

* Correct Challenges tooltip in Guild view (#10667)

* Fix new party member cannot join pending quest (#10648)

* Saved sort selection into local storage for later use - fixes #10432 (#10655)

* Saved sort selection into local storage for later use

* Updated code to use userLocalManager module

* Fix initial position item info when selecting one item after another (fixes #10077) (#10661)

* Update lastMouseMoveEvent even when dragging an egg or potion.

* Update lastMouseMoveEvent even when dragging a food item.

* Refactor/market vue (#10601)

* extract inventoryDrawer from market

* show scrollbar only if needed

* extract featuredItemsHeader / pinUtils

* extract pageLayout

* extract layoutSection / filterDropdown - fix sortByNumber

* rollback sortByNumber order-fix

* move equipment lists out of the layout-section (for now)

* refactor sellModal

* extract checkbox

* extract equipment section

* extract category row

* revert scroll - remove sellModal item template

* fix(lint): commas and semis

* Created category item component (#10613)

* extract filter sidebar

* fix gemCount - fix raising the item count if the item wasn't previously owned

* fixes #10659

* remove unneeded method

* fix typo when importing component

* feat(content): Forest Friends Quest Bundle

* chore(sprites): compile

* chore(i18n): update locales

* 4.60.3

* fix(bcrypt): install fork compatible with Node 8

* chore(i18n): update locales

* 4.60.4

* add swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc

* add pinUtils-mixin   - fixes #10682 (#10683)

* chore(news): Bailey

* chore(i18n): update locales

* 4.60.5

* Improve rendering banner about sleeping in the inn

See #10695

* Display settings in one column

* Small Updates (#10701)

* small updates

* fix client unit test

* fix uuid validation

* Revert "Small Updates (#10701)" (#10702)

This reverts commit dd7fa73961.

* feat(event): Fall Festival 2018

* chore(sprites): compile

* chore(i18n): update locales

* 4.61.0

* Move inbox to its own model (#10428)

* shared model for chat and inbox

* disable inbox schema

* inbox: use separate model

* remove old code that used group.chat

* add back chat field (not used) and remove old tests

* remove inbox exclusions when loading user

* add GET /api/v3/inbox/messages

* add comment

* implement DELETE /inbox/messages/:messageid in v4

* implement GET /inbox/messages in v4 and update tests

* implement DELETE /api/v4/inbox/clear

* fix url

* fix doc

* update /export/inbox.html

* update other data exports

* add back messages in user schema

* add user.toJSONWithInbox

* add compativility until migration is done

* more compatibility

* fix tojson called twice

* add compatibility methods

* fix common tests

* fix v4 integration tests

* v3 get user -> with inbox

* start to fix tests

* fix v3 integration tests

* wip

* wip, client use new route

* update tests for members/send-private-message

* tests for get user in v4

* add tests for DELETE /inbox/messages/:messageId

* add tests for DELETE /inbox/clear in v4

* update docs

* fix tests

* initial migration

* fix migration

* fix migration

* migration fixes

* migrate api.enterCouponCode

* migrate api.castSpell

* migrate reset, reroll, rebirth

* add routes to v4 version

* fix tests

* fixes

* api.updateUser

* remove .only

* get user -> userLib

* refactor inbox.vue to work with new data model

* fix return message when messaging yourself

* wip fix bug with new conversation

* wip

* fix remaining ui issues

* move api.registerLocal, fixes

* keep only v3 version of GET /inbox/messages

* Fix API early Stat Point allocation (#10680)

* Refactor hasClass check to common so it can be used in shared & server-side code

* Check that user has selected class before allocating stat points

* chore(event): end Ember Hatching Potions

* chore(analytics): reenable navigation tracking

* update bcrypt

* Point achievement modal links to main site (#10709)

* Animal ears after death (#10691)

* Animal Ears purchasable with Gold if lost in Death

* remove ears from pinned items when set is bought

* standardise css and error handling for gems and coins

* revert accidental new line

* fix client tests

* Reduce margin-bottom of checklist-item from 10px to -3px. (#10684)

* chore(i18n): update locales

* 4.61.1

* Position inn banner when window is resized

* feat(content): Subscriber Items and Magic Potions

* chore(sprites): compile

* chore(i18n): update locales

* 4.62.0

* Update inn banner handling

* Fix banner offset on initial load

* Fix minor issues.

* Issue: 10660 - Fixed. Changed default to Please Enter A Value (#10718)

* Issue: 10660 - Fixed. Changed default to Please Enter A Value

* Issue: 10660 - Fixed/revision 2 Changed default to Enter A Value

* chore(news): Bailey announcements

* chore(i18n): update locales

* 4.62.1

* adjust wiki link for usernameInfo string

https://github.com/HabitRPG/habitica-private/issues/7#issuecomment-425405425

* raise coverage for tasks api calls (#10029)

* - updates a group task - approval is required
- updates a group task with checklist

* add expect to test the new checklist length

* - moves tasks to a specified position out of length

* remove unused line

* website getter tasks tests

* re-add sanitizeUserChallengeTask

* change config.json.example variable to be a string not a boolean

* fix tests - pick the text / up/down props too

* fix test - remove changes on text/up/down - revert sanitize condition - revert sanitization props

* chore(i18n): update locales

* 4.62.2

* chore(news): Bailey

* chore(i18n): update locales

* 4.62.3

* inbox: fix avatar display and order

* Username announcement (#10729)

* Change update username API call

The call no longer requires a password and also validates the username.

* Implement API call to verify username without setting it

* Improve coding style

* Apply username verification to registration

* Update error messages

* Validate display names.

* Fix API early Stat Point allocation (#10680)

* Refactor hasClass check to common so it can be used in shared & server-side code

* Check that user has selected class before allocating stat points

* chore(event): end Ember Hatching Potions

* chore(analytics): reenable navigation tracking

* update bcrypt

* Point achievement modal links to main site (#10709)

* Animal ears after death (#10691)

* Animal Ears purchasable with Gold if lost in Death

* remove ears from pinned items when set is bought

* standardise css and error handling for gems and coins

* revert accidental new line

* fix client tests

* Reduce margin-bottom of checklist-item from 10px to -3px. (#10684)

* chore(i18n): update locales

* 4.61.1

* feat(content): Subscriber Items and Magic Potions

* chore(sprites): compile

* chore(i18n): update locales

* 4.62.0

* Display notification for users to confirm their username

* fix typo

* WIP(usernames): Changes to address #10694

* WIP(usernames): Further changes for #10694

* fix(usernames): don't show spurious headings

* Change verify username notification to new version

* Improve feedback for invalid usernames

* Allow user to set their username again to confirm it

* Improve validation display for usernames

* Temporarily move display name validation outside of schema

* Improve rendering banner about sleeping in the inn

See #10695

* Display settings in one column

* Position inn banner when window is resized

* Update inn banner handling

* Fix banner offset on initial load

* Fix minor issues.

* Issue: 10660 - Fixed. Changed default to Please Enter A Value (#10718)

* Issue: 10660 - Fixed. Changed default to Please Enter A Value

* Issue: 10660 - Fixed/revision 2 Changed default to Enter A Value

* chore(news): Bailey announcements

* chore(i18n): update locales

* 4.62.1

* adjust wiki link for usernameInfo string

https://github.com/HabitRPG/habitica-private/issues/7#issuecomment-425405425

* raise coverage for tasks api calls (#10029)

* - updates a group task - approval is required
- updates a group task with checklist

* add expect to test the new checklist length

* - moves tasks to a specified position out of length

* remove unused line

* website getter tasks tests

* re-add sanitizeUserChallengeTask

* change config.json.example variable to be a string not a boolean

* fix tests - pick the text / up/down props too

* fix test - remove changes on text/up/down - revert sanitize condition - revert sanitization props

* Change update username API call

The call no longer requires a password and also validates the username.

* feat(content): Subscriber Items and Magic Potions

* Re-add register call

* Fix merge issue

* Fix issue with setting username

* Implement new alert style

* Display username confirmation status in settings

* Add disclaimer to change username field

* validate username in settings

* Allow specific fields to be focused when opening site settings

* Implement requested changes.

* Fix merge issue

* Fix failing tests

* verify username when users register with username and password

* Set ID for change username notification

* Disable submit button if username is invalid

* Improve username confirmation handling

* refactor(settings): address remaining code comments on auth form

* Revert "refactor(settings): address remaining code comments on auth form"

This reverts commit 9b6609ad646b23d9e3e394c1856f149d9a2d0995.

* Social user username (#10620)

* Refactored private functions to library

* Refactored social login code

* Added username to social registration

* Changed id library

* Added new local auth check

* Fixed export error. Fixed password check error

* fix(settings): password not available on client

* refactor(settings): more sensible placement of methods

* chore(migration): script to hand out procgen usernames

* fix(migration): don't give EVERYONE new names you doofus

* fix(migration): limit data retrieved, be extra careful about updates

* fix(migration): use missing field, not migration tag, for query

* fix(migration): unused var

* fix(usernames): only generate 20 characters

* fix(migration): set lowerCaseUsername

* fix(lint): comma

* fix(lint): comma spacing

* chore(i18n): update locales

* 4.63.0

* chore(news): Bailey

* chore(i18n): update locales

* 4.63.1

* fix(usernames): various
Reword invalid characters error
Correct typo in slur error
Remove extraneous Confirm button
Reset username field if empty on blur
Restore ability to add local auth to social login

* fix(auth): account for new username paradigm in add-local flow

* fix(auth): alert on successful addLocal

* chore(i18n): update locales

* 4.63.2

* fix(auth): Don't try to check existing username on new reg

* 4.63.3

* feat(content): Armoire and BGs 2018/10

* chore(sprites): compile

* fix(passport): use graph API v2.8

* chore(i18n): update locales

* 4.64.0

* Begin refactoring news API to return individual markdown posts

* Implement simple bailey CMS

* remove old news markdown

* Correctly display images in bailey modal

* Remove need for newStuff migration

* Add basic tests

* Fix authentication issue

* Fix tests

* Update news model

* add API route to get single post

* remove news admin frontend code

* fix lint error

* Fix merge mixups

* Fix lint errors

* fix api call

* fix lint error

* Fix issues caused by merging

* remove console log

* Improve news display

* Correctly update users notifications

* Fix date display for news posts

* Fix tests

* remove old cache file

* correctly create date

* correctly create promise

* Better check for existance.

* Improve docs

* Fix minor issues

* Add method to get latest post

* fix lint errors

* use correct call for 404

* add comment about old newStuff field

* paginate news

* Fix lint errors

* Remove unnecessary await

* Fix broken tests

* ...

* correct existence check

* fix database queries

* change approach to cached news posts

* fix tests

* Change how news posts are cached

* Fetch last news post at an interval

* Fix typos and other small things

* add new permission for modifying bailey posts

* add test for ensureNewsPoster

* return last news post with legacy api

* Fix test

* Hopefully fix test

* change fields to _id

* Fixes

* Fixes

* fix test

* Fixes

* make all tests pass

* fix lint

* id -> _id

* _id -> id

* remove identical tell me later route from api v4

* fix lint

* user model: fix issues with newStuff

* improve user#toJSONTransform

* fix typo

* improve newsPost.js

* fix(integration tests): do not return flags.newStuff if it was not selected

* fix news controller

* server side fixes, start refactoring client

* more client fixes

* automatically set author

* new stuff: show one post per user + drafts

* change default border radius for modals to 8px

* required fields and defaults

* slit news into its own component and fix static page

* noNewsPoster: move from i18n to apiError

* remove unused strings

* fix unit tests

* update apidocs

* add backward comparibility for flags.newStuff in api v3

* fix integration tests

* POST news: make integration test independent of number of posts

* api v3 news: render markdown

* static new-stuff: add padding and fix when user not logged in

* test flags.newStuff

* api v3: test setting flags.newStuff on PUT /user

* refactor news post cache and add tests

* remove new locales file

* more resilient tests

* more resilient tests

* refactor tests for NewsPost.updateLastNewsPost

* api v4: fix tests

* api v3: fix tests

* can set flags.newStuff in api v4

Co-authored-by: Keith Holliday <keithrholliday@gmail.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: Alys <Alys@users.noreply.github.com>
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Co-authored-by: Carl Vuorinen <carl.vuorinen@gmail.com>
Co-authored-by: Rene Cordier <rene.cordier@gmail.com>
Co-authored-by: Forrest Hatfield <github@forresthatfield.com>
Co-authored-by: lucubro <88whacko@gmail.com>
Co-authored-by: negue <negue@users.noreply.github.com>
Co-authored-by: Alys <alice.harris@oldgods.net>
Co-authored-by: J.D. Sandifer <sandifer.jd@gmail.com>
Co-authored-by: Kirsty <kirsty-tortoise@users.noreply.github.com>
Co-authored-by: beatscribe <rattjp@gmail.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
2020-10-13 10:15:52 -05:00
Sabe Jones
058c1464d3 feat(content): Armoire and BGs 2020/10 2020-10-06 15:49:09 -05:00
Sabe Jones
0d4ed102a0 chore(news): Bailey 2020-10-01 17:07:51 -05:00
Sabe Jones
205d2758de Merge branch 'release' into develop 2020-09-29 14:19:29 -05:00
Sabe Jones
938152edea chore(news): Bailey 2020-09-29 14:16:25 -05:00
Bart Enkelaar
6e91326648 fix(dataexport) - 12482 - Extract xml marshalling into library
- Add integration test on dataexport endpoint
- Add library with unit test for xml marshalling
2020-09-25 08:57:05 +02:00
Bart Enkelaar
c4fc2d825d fix(export) - Issue 12482 - Fix messages in xml export. 2020-09-25 08:57:05 +02:00
Sabe Jones
ee70ed6146 feat(content): Vampire Hatching Potions 2020-09-23 14:09:38 -05:00
Sabe Jones
f28c5a563a fix(news): missing Bailey paragraph 2020-09-22 09:48:58 -05:00
Sabe Jones
2428347836 chore(news): Bailey 2020-09-22 09:09:43 -05:00
Matteo Pagliazzi
83aca20ce5
Fall Festival Gem Promo (#138)
* 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
2020-09-21 16:22:13 +02:00
Sabe Jones
81cd09d0f5 chore(news): Bailey 2020-09-17 15:33:46 -05:00
Sabe Jones
da6f275adc Merge branch 'release' into develop 2020-09-15 14:41:25 -05:00
Sabe Jones
284d67b385 fix(sprites): mystery set
and Turquoise Bailey
2020-09-15 14:39:47 -05:00
Scott
5716b4eb72
Frontend support and adjustments of current banned words blocking code to support new implementation (Fixes #12405) (#12496)
* Added the "Allow banned words" checkbox to create/update guild forms

Added the "Allow banned words" checkbox to guild create/update forms which are only visible to Admins

* Updated create/update group API to include bannedWordsAllowed property

Added logic to set bannedWordsAllowed depending on conditions

* Updated word banning logic to use bannedWordsAllowed guild value instead

Updated word banning logic to use bannedWordsAllowed guild value and deleted hardcoded guild file & import

* Updated banned words test

* Pull Request amends

Removed the setting of bannedWordsAllowed during group creation
Added v-once to elements
Updated existing test and added tests related to bannedWordsAllowed functionality

* Small amend

* Small amend

Removed leftover code that was left during testing
2020-09-11 10:29:30 +02:00
Sabe Jones
60ce16bf08 chore(news): bailey 2020-09-10 15:14:04 -05:00
Sabe Jones
d7cc317208 Merge branch 'release' into develop 2020-09-08 16:11:29 -05:00
Sabe Jones
f5eb868763 feat(content): Backgrounds and Armoire items 2020-09-08 16:10:01 -05:00
Kirsty
d37c156fa0
Filter challenge by owned (#12527)
* when filtering by owned challenges, challenges that a user owns but has not joined will be included

* add tests for filtering challenges by owned

* fix lint
2020-09-07 15:30:01 +02:00
Sabe Jones
81eef79da4 feat(content): Mystery Items and Challenges 2020-09-01 11:08:41 -05:00
Sabe Jones
44e438303a chore(news): Last Chance 2020-08-27 14:44:43 -05:00
Sabe Jones
7eeddcb033 Merge branch 'release' into develop 2020-08-25 16:05:40 -05:00
Sabe Jones
f4c453675b feat(content): Wind-Up Potions quest 2020-08-25 16:04:28 -05:00
Matteo Pagliazzi
d0bc0dbe49
Add API Call to bulk score tasks (#11389)
* Add new API call to complete multiple task scorings in one call

* Improve API response

* Improve saving process

* Improve handling for multiple tasks scored at once

* Handle challenge task errors better

* Improve check for alias

* Improve check for task scorings

* Fix merge errors

* make nodemon ignore content_cache

* Fix completing group tasks

* fix test

* fix tests (again)

* typo

* WIP(a11y): task modal updates

* fix(tasks): borders in modal

* fix(tasks): circley locks

* fix(task-modal): placeholders

* WIP(task-modal): disabled states, hide empty options, +/- restyle

* fix(task-modal): box shadows instead of borders, habit control pointer

* fix(task-modal): button states?

* fix(modal): tighten up layout, new spacing utils

* fix(tasks): more stylin

* fix(tasks): habit hovers

* fix(css): checklist labels, a11y colors

* fix(css): one more missed hover issue

* fix(css): lock Challenges, label fixes

* fix(css): scope input/textarea changes

* fix(style): task tweakies

* fix(style): more button fixage

* WIP(component): start select list story

* working example of a templated selectList

* fix(style): more button corrections

* fix(lint): EOL

* fix(buttons): factor btn-secondary to better override Bootstrap

* fix(styles): standardize more buttons

* wip: difficulty select - style fixes

* selectDifficulty works! 🎉 - fix styles

* change the dropdown-item sizes only for the selectList ones

* selectTranslatedArray

* changed many label margins

* more correct dropdown style

* fix(modals): button corrections

* input-group styling + datetime picker without today button

* Style/margins for "repeat every" - extract selectTag.vue

* working tag-selection / update - cleanup

* fix stories

* fix svg color on create modal (purple)

* fix task modal bottom padding

* correct dropdown shadow

* update dropdown-toggle caret size / color

* fixed checklist style

* sync checked state

* selectTag padding

* fix spacing between positive/negative streak inputs

* toggle-checkbox + fix some spacings

* disable repeat-on when its a groupTask

* fix new checklist-item

* fix toggle-checkbox style - fix difficulty style

* fix checklist ui

* add tags label , when there arent any tags selected

* WORKING select-tag component 🎉

* fix taglist story

* show max 5 items in tag dropdown + "X more" label

* fix datetime clear button

* replace m-b-xs to mb-1 (bootstrap) - fix input-group-text style

* fix styles of advanced settings

* fix delete task styles

* always show grippy on hover of the item

* extract modal-text-input mixin + fix the borders/dropshadow

* fix(spacing): revert most to Bootstrap

* feat(checklists): make local copy of master checklist non-editable
also aggressively update checklists because they weren't syncing??

* fix(checklists): handle add/remove options better

* feat(teams): manager notes field

* fix select/dropdown styles

* input border + icon colors

* delete task underline color

* fix checklist "delete icon" vertical position

* selectTag fixes - normal open/close toggle working again - remove icon color

* fixing icons:

Trash can - Delete
Little X - Remove
Big X - Close
Block - Block

* fix taglist margins / icon sizes

* wip margin overview (in storybook)

* fix routerlink

* remove unused method

* new selectTag style + add markdown inside tagList + scrollable tag selection

* fix selectTag / selectList active border

* fix difficulty select (svg default color)

* fix input padding-left + fix reset habit streak fullwidth / padding + "repeat every" gray text (no border)

* feat(teams): improved approval request > approve > reward flow

* fix(tests): address failures

* fix(lint): oops only

* fix(tasks): short-circuit group related logic

* fix(tasks): more short circuiting

* fix(tasks): more lines, less lint

* fix(tasks): how do i keep missing these

* feat(teams): provide assigning user summary

* fix(teams): don't attempt to record assiging user if not supplied

* fix advanced-settings styling / margin

* fix merge + hide advanced streak settings when none enabled

* fix styles

* set Roboto font for advanced settings

* Add Challenge flag to the tag list

* add tag with enter, when no other tag is found

* fix styles + tag cancel button

* refactor footer / margin

* split repeat fields into option mt-3 groups

* button all the things

* fix(tasks): style updates
* no hover state for non-editable tasks on team board
* keep assign/claim footer on task after requesting approval
* disable more fields on user copy of team task, and remove hover states 
for them

* fix(tasks): functional revisions
* "Claim Rewards" instead of "x" in task approved notif
* Remove default transition supplied by Bootstrap, apply individually to 
some elements
* Delete individual tasks and related notifications when master task 
deleted from team board
* Manager notes now save when supplied at task initial creation
* Can no longer dismiss rewards from approved task by hitting Dismiss 
All

* fix(tasks): clean tasksOrder
also adjust related test expectation

* fix(tests): adjust integration expectations

* fix(test): ratzen fratzen only

* fix lint

* fix tests

* fix(teams): checklist, notes

* handleSharedCompletion: handle error, make sure it is run after the user task has been saved

* fix typo

* correctly handle errors in handleSharedCompletion when approving a task

* fix(teams): improve disabled states

* handleSharedCompletion: do not increase completions by 1 manually to adjust for last approval not saved yet

* revert changes to config.json.example

* fix(teams): more style fixage

* add unit tests for findMultipleByIdOrAlias

* exclude api v4 route from apidocs

* BREAKING(teams): return 202 instead of 401 for approval request

* fix(teams): better taskboard sync
also re-re-fix checklist borders

* scoreTasks: validate body

* fix tests, move string to api errors

* fix(tests): update expectations for breaking change

* start updating api docs, process tasks sequentially to avoid conflicts with user._tmp

* do not crash entire bulk operation in case of errors

* save task only if modified

* fix lint

* undo changes to error handling: either all tasks scoring are successfull or none

* remove stale code

* do not return user._tmp when bulk scoring, it would be the last version only

* make sure user._tmp.leveledUp is not lost when bulk scoring

* rewards tests

* mixed tests

* fix tests, allow scoring the same task multiple times

* finish integration tests

* fix api docs for the bulk score route

* refactor(task-modal): lockable label component

* wip loading spinner

* refactor(teams): move task scoring to mixin

* fix(teams): style corrections

* fix(btn): fix padding to have height of 32px

* implement loading spinner

* remove console.log warnings

* fix(tasks): spacing and wording corrections

* fix(teams): don't bork manager notes

* fix(teams): assignment fix and more approval flow revisions

* WIP(teams): use tag dropdown control for assignment

* finish merge - never throw an error when a group task requires approval (wip - needs tests)

* fix taskModal merge

* fix merge

* fix(task modal): add newline

* fix(column.vue): add newline at end of file

* mvp yesterdaily modal

* fix tests

* fix api docs for bulk scoring group tasks

* separate task scoring and _tmp handling

* handle _tmp when bulk scoring

* rya: close modal before calling cron API, prevents issues with modals

* rya: fix conflicts with other modals

* add sounds, support for group plans, analytics

* use asyncResource for group plans

* fix lint

* streak bonus: add comment about missing in rya

* move yesterdailyModal

* fix issues with level up modals and rya

* add comments for future use, fix level up modals not showing up at levels with a quest drop

* handle errors in rya modal

* bundle quest and crit notifications

Co-authored-by: Phillip Thelen <phillip@habitica.com>
Co-authored-by: Phillip Thelen <viirus@pherth.net>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: negue <eugen.bolz@gmail.com>
2020-08-21 11:46:56 +02:00
Sabe Jones
f9d9df5ddb chore(news): blogs 2020-08-20 14:47:18 -05:00
Sabe Jones
eb16966953 fix(news): image 2020-08-18 15:26:54 -05:00
Sabe Jones
6255c5dcc7 feat(content): golden achievements 2020-08-18 15:13:06 -05:00
Sabe Jones
0f81c5cbdb Merge branch 'develop' into release 2020-08-13 16:21:21 -05:00
Sabe Jones
d3fdfe33fb chore(news): Bailey 2020-08-13 16:20:52 -05:00
Sabe Jones
cec3e67b16 Merge branch 'release' into develop 2020-08-11 15:44:48 -05:00
Sabe Jones
1b6b99b521 feat(content): Armoire and backgrounds 8/2020 2020-08-11 15:43:29 -05:00
Matteo Pagliazzi
535aa860f1 fix(task): make sure daysOfMonth update is only applied to dailies 2020-08-10 19:08:36 +02:00
Sabe Jones
8c3a9c6dbc
fix(teams): smol tweaks (#12443) 2020-08-10 11:27:19 -05:00
Sabe Jones
9a0e029491 Merge branch 'release' into develop 2020-08-03 13:27:57 -05:00
Sabe Jones
74244fd3ba chore(event): Splash cleanup and Bailey 2020-08-03 13:26:53 -05:00
Sabe Jones
43fb747c8f Merge branch 'release' into develop 2020-07-31 14:45:36 -05:00
Sabe Jones
e4c95275ac chore(event): Naming Day news and migration 2020-07-31 14:38:41 -05:00
Matteo Pagliazzi
bd3e783274
Paypal IPN Upgrade (#12415)
* upgrade paypal ipn verification module

* paypal ipn: allow sandbox when testing

* improved error handling
2020-07-31 12:32:24 +02:00
Laurel Thomson
1f8e2d5677
Updating daysOfMonths array when the startDate of a monthly is updated in the API - Fixes #12041 (#12399)
* Updating daily daysOfMonth array when startDate is updated and adding integration tests to test this functionality

* Adding more test cases and adding semicolons to the end of lines

* Only updating the monthly repetition if the daily was already set to repeat on a day of the month

* fix(lint): whitespace

Co-authored-by: Laurel Thomson <laurel.beth.thomson@gmai.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2020-07-31 11:16:55 +02:00
Ieahleen
c4049608a8
removing wrong info on updating challenge leader from apidoc (#12413)
* removing wrong info on updating challenge leader

as discussed in the Aspiring Comrades, doing the change because the route `/api/v3/challenges/:challengeId` can't be used to change challenge leader, so I am deleting it from the docs

* adding summary to section title

as requested by @paglias

* missing comma

* fix(lint): line length

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2020-07-31 11:10:47 +02:00
Sabe Jones
f27ece49d1 chore(news): Last Chance Bailey 2020-07-30 14:38:19 -05:00
Sabe Jones
7546733ae9 Merge branch 'release' into develop 2020-07-28 10:01:31 -05:00
Sabe Jones
11018156c5 fix(news): spritename 2020-07-27 14:28:12 -05:00
Sabe Jones
7280c50963 feat(content): Freshwater Friends cheevo 2020-07-27 14:17:43 -05:00
Matteo Pagliazzi
35a6f4cb19 docs(members): update members api docs to include info about includeAllPublicFields query parameter 2020-07-27 11:01:29 +02:00
negue
aaf32cc09b
Teams UI Redesign and A11y Updates (#12142)
* 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>
2020-07-25 07:37:10 -05:00
Bart Enkelaar
234258b41e
Move from deprecated moment#zone to moment#utcOffset (#12207)
* Issue 10209 - Remove read usages of zone

* Issue 10209 - Add coverage on daysSince and startOfDay cron utility functions

* Issue 10209 - Add unit test for daysUserHasMissed method

* Issue 10209 - Remove usages of deprecated `moment.js#zone` method.

* Issue 10209 - Add helper function to centralise logic

Also simplify timezoneOffsetToUtc function in site.vue

* Issue 10209 - Also add getUtcOffset as method on user

Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
2020-07-25 13:22:41 +02:00
Sabe Jones
32e51bd551 feat(content): add new Naming Day item
also Bailey
2020-07-23 10:44:00 -05:00
Sabe Jones
c5e02292c4 feat(content): award yearly Orcas 2020-07-21 14:57:52 -05:00
Matteo Pagliazzi
fd7c5b3847
feat(members): allow to fetch up to 60 members at all (#12400) 2020-07-19 18:25:46 +02:00
Sabe Jones
1b190a594a chore(news): Bailey 2020-07-16 15:11:40 -05:00
Sabe Jones
e54bd8f242 Merge branch 'develop' into release 2020-07-16 14:58:25 -05:00
Sabe Jones
15753de3a1 feat(content): Seafoam and Amigos 2020-07-14 16:11:34 -05:00
PitiTheGrey
e89ff95a21
Add Bulk Feed via query parameter (#12384)
* Update feed.js

New Tests for bulk feeding

* Update POST-user_feed_pet_food.test.js

Added test for bulk-feeding

* Update user.js

Added 'query paramter' for bulk feeding

* Update pets.json

Added "tooMuchFood" for bulk feeding pets

* Update feed.js

Added query parameter option for bulk feeding pets.

* Update feed.js

fixing lint
(bulk feeding)

* Update POST-user_feed_pet_food.test.js

adjustments for testing bulk feeding

* Update feed.js

Bulk feeding 
amount as integer

* Update pets.json

added invalidAmount for bulk feeding

* Update feed.js

Bulk feeding  
Error handling

* Update feed.js

Bulk - feed  
no hardcoded values

* Update pets.json

Get rid of my german accent.
2020-07-13 16:04:03 +02:00
Jalansh
a02c4c1cfd
WIP. Accepting a redundant party invite will not remove the user from the party and let the user still be a part of it. Fixes #12291. (#12356)
* Getting the latest code

* Temporary fix for Redundant Party Invite. Needs changes.

* Added logic to check if the user is an existing member of the party that the user is invited to.

* Added a test case for redundant party invite check.

* Changed the test case for redundant party invite to see if it runs successfully.

* Made changes to the test cases.

* Fixed lint errors.

* Removed the exclusive mocha test.

* Referred the issue in the name of the new test case.

* Modified test case to check its veracity.

* Checking if the update statement is working or not.
2020-07-13 16:00:34 +02:00
Sabe Jones
955c41f744 Merge branch 'release' into develop 2020-07-07 14:53:52 -05:00
Sabe Jones
dc7b016950 chore(news): Bailey 2020-07-07 14:49:20 -05:00
JalanshMunshi
453d60b5bf
WIP. Changed the way how memberCount is incremented or decremented. Fixes #12275 (#12308)
* Changed the way how memberCount is incremented or decremented.

* Updated the logic for incrementing/decrementing memberCount for parties and guilds.

* Fixed lint errors

* Added relevant comment. Changed the way how memberCount is updated to replace the usage of custom query.

* Fixed lint errors.

* Reverted changes owing to failing tests.

* Added relevant comments. Removed duplicate and unwanted code. Added await for async function call.

* Minor change due to lint error.

* Reverted changes for removing the party member when the menber leaves.
2020-07-03 16:51:45 +02:00
Robert Whitaker
af1d13d3a2
Fix bug where updated webhook options failed to save (fixes #12336) (#12342)
* Fix bug where updated webhook options failed to save

This bug was caused by Mongoose not creating getters/setters for array
elements (https://mongoosejs.com/docs/faq.html#array-changes-not-saved).
So, although the webhook was being updated properly, Mongoose was not
actually committing it to the database. Telling Mongoose that the array
of webhooks has changed via `markModified` fixes the issue.

Additionally, the relevant API test case was only checking whether or
not the webhook returned from the PUT endpoint matched the expected
update. Since the endpoint was returning the updated webhook without
querying the database again, this test case would pass. It has been
updated to check both the returned webhook as well as the version of the
webhook that is saved to the database against the expected. In other
words:

`assert returned === saved === expected`

Fixes #12336

* Call markModified on webhook.options instead of user.webhooks

This tells Mongoose that only the modified webhook's options changed
instead of telling it that the entire user.webhooks array changed,
saving a costly DB update.
2020-07-03 16:48:45 +02:00
Sabe Jones
5a7e1cbc5a Merge branch 'release' into develop 2020-07-01 16:37:22 -05:00
Sabe Jones
fb6eacf8f9 chore(news): Bailey 2020-07-01 16:36:51 -05:00
Matteo Pagliazzi
3d5630d5a2 chore: update sub-deps and fix lint 2020-07-01 18:20:18 +02:00
Sabe Jones
40cadba7bf Merge branch 'release' into develop 2020-06-29 15:15:54 -05:00
Sabe Jones
2b166af82a feat(content): July 2020 subscriber set
Also refactor repetitive subscriber item code
2020-06-29 15:15:11 -05:00
Ieahleen
083417fe48
added trasnformation items to api cast spell description (#12340) 2020-06-27 16:17:48 +02:00
Matteo Pagliazzi
359ef47ce7
fix(get tasks): improve tests and add ability to fetch group tasks (#12339) 2020-06-26 16:50:49 +02:00
Sabe Jones
2a85f2d27f chore(news): Bailey
and set up A/B test for drop curve
2020-06-25 14:29:53 -05:00
Matteo Pagliazzi
6058b3d4b4 Merge branch 'develop' of github.com:HabitRPG/habitica into develop 2020-06-25 16:07:25 +02:00
Matteo Pagliazzi
97857dbe9c fix(apidoc): make sure v4 routes do not show up in docs 2020-06-25 16:07:03 +02:00
Tressley Cahill
b74d3343d1
Merge pull request #12314 from HabitRPG/hotfix/groups-checklist-toggle
Groups: always show checklist-toggle
2020-06-25 10:01:15 -04:00
negue
54a2ec1be8 enable collapseChecklist to be changed by everyone 2020-06-24 21:29:40 +02:00
Sabe Jones
e52fec08a0 feat(event): Splashy Skins 2020-06-23 14:30:39 -05:00
Sabe Jones
1405cf3ca5 Squashed commit of the following:
commit 39427a75db
Author: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Date:   Wed Jun 17 17:33:30 2020 +0200

    To-Dos -> To Do's (#12290)

    * To-Dos -> To Do's

    * To-Do -> To Do

commit d7854f3809
Author: jacobguinther <jacobgguinther@gmail.com>
Date:   Tue Jun 16 13:31:32 2020 -0600

    Remove party banner when below tablet size  (fixes 10827) (#12289)

    * Remove party banner when below tablet size
    - Use Bootstrap breakpoints to remove party banner @ 768px
    - Remove old media query that removed party button on small screens

    * Make progress bars smaller @ 992px
    - Makes room for party piece

commit 0d8df9f1a2
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Tue Jun 16 13:42:28 2020 -0500

    More Armoire content refactoring (#12288)

    * refactor(armoire): still more defaultification

    * fix(refactor): look at array for index, not object

    * refactor(armoire): skip stat processing if item already has notes

commit 679c8f725b
Merge: 274a5f310e ed0cffce76
Author: Melior <admin@habitica.com>
Date:   Tue Jun 16 20:39:36 2020 +0200

    Merge branch 'origin/develop' into Weblate.

commit ed0cffce76
Author: Melior <admin@habitica.com>
Date:   Tue Jun 16 20:39:25 2020 +0200

    Translated using Weblate (Dutch)

    Currently translated at 94.6% (2000 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Japanese)

    Currently translated at 96.4% (677 of 702 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

    Translated using Weblate (Dutch)

    Currently translated at 94.6% (2000 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Japanese)

    Currently translated at 97.5% (81 of 83 strings)

    Translation: Habitica/Achievements
    Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/

    Translated using Weblate (Vietnamese)

    Currently translated at 100.0% (536 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (213 of 213 strings)

    Translation: Habitica/Tasks
    Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (2113 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (702 of 702 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (359 of 359 strings)

    Translation: Habitica/Content
    Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (536 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

    Translated using Weblate (Vietnamese)

    Currently translated at 97.0% (520 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/

    Translated using Weblate (Vietnamese)

    Currently translated at 94.0% (504 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (140 of 140 strings)

    Translation: Habitica/Quests
    Translate-URL: https://translate.habitica.com/projects/habitica/quests/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (173 of 173 strings)

    Translation: Habitica/Npc
    Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/ja/

    Translated using Weblate (Russian)

    Currently translated at 98.2% (690 of 702 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

    Translated using Weblate (Japanese)

    Currently translated at 95.4% (670 of 702 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (359 of 359 strings)

    Translation: Habitica/Content
    Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (213 of 213 strings)

    Translation: Habitica/Tasks
    Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (173 of 173 strings)

    Translation: Habitica/Npc
    Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (536 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (Japanese)

    Currently translated at 95.1% (79 of 83 strings)

    Translation: Habitica/Achievements
    Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/

    Translated using Weblate (Vietnamese)

    Currently translated at 92.3% (495 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/

    Translated using Weblate (Romanian)

    Currently translated at 100.0% (213 of 213 strings)

    Translation: Habitica/Tasks
    Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ro/

    Translated using Weblate (Romanian)

    Currently translated at 100.0% (57 of 57 strings)

    Translation: Habitica/Spells
    Translate-URL: https://translate.habitica.com/projects/habitica/spells/ro/

    Translated using Weblate (Romanian)

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/ro/

    Translated using Weblate (Romanian)

    Currently translated at 100.0% (63 of 63 strings)

    Translation: Habitica/Defaulttasks
    Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/ro/

    Translated using Weblate (Romanian)

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/ro/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (143 of 143 strings)

    Translation: Habitica/Pets
    Translate-URL: https://translate.habitica.com/projects/habitica/pets/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (359 of 359 strings)

    Translation: Habitica/Content
    Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/

    Translated using Weblate (Japanese)

    Currently translated at 99.6% (534 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (Russian)

    Currently translated at 99.5% (210 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/ru/

    Translated using Weblate (Vietnamese)

    Currently translated at 90.8% (487 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/

    Translated using Weblate (Japanese)

    Currently translated at 98.8% (530 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (536 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/

    Translated using Weblate (Vietnamese)

    Currently translated at 83.2% (446 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/

    Translated using Weblate (Vietnamese)

    Currently translated at 100.0% (213 of 213 strings)

    Translation: Habitica/Tasks
    Translate-URL: https://translate.habitica.com/projects/habitica/tasks/vi/

    Translated using Weblate (Dutch)

    Currently translated at 94.4% (1996 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Japanese)

    Currently translated at 95.4% (670 of 702 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (359 of 359 strings)

    Translation: Habitica/Content
    Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/

    Translated using Weblate (Japanese)

    Currently translated at 98.3% (527 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

commit 274a5f310e
Merge: d961b8aaaf bceccd55bf
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Tue Jun 16 13:36:42 2020 -0500

    Merge branch 'release' into develop

commit d961b8aaaf
Author: Frank Maximus <frank@healingjourneyman.com>
Date:   Tue Jun 16 19:06:14 2020 +0200

    #9498: Hide Wolf-Veteran and LionCub-Ethereal (#12292)

commit 430ff64875
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Tue Jun 16 15:12:39 2020 +0200

    build(deps): bump @vue/cli-plugin-eslint in /website/client (#12301)

    Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) from 4.4.1 to 4.4.4.
    - [Release notes](https://github.com/vuejs/vue-cli/releases)
    - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/vue-cli/commits/v4.4.4/packages/@vue/cli-plugin-eslint)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit ac99c6c3c5
Merge: 1be03d741a a43f410031
Author: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Date:   Tue Jun 16 15:04:30 2020 +0200

    build(deps): bump @vue/cli-service in /website/client (#12305)

    Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) from 4.4.1 to 4.4.4.
    - [Release notes](https://github.com/vuejs/vue-cli/releases)
    - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/vue-cli/commits/v4.4.4/packages/@vue/cli-service)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit 1be03d741a
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Tue Jun 16 15:04:13 2020 +0200

    build(deps): bump @vue/cli-plugin-router in /website/client (#12304)

    Bumps [@vue/cli-plugin-router](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-router) from 4.4.1 to 4.4.4.
    - [Release notes](https://github.com/vuejs/vue-cli/releases)
    - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/vue-cli/commits/v4.4.4/packages/@vue/cli-plugin-router)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit a43f410031
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Tue Jun 16 13:00:43 2020 +0000

    build(deps): bump @vue/cli-service in /website/client

    Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) from 4.4.1 to 4.4.4.
    - [Release notes](https://github.com/vuejs/vue-cli/releases)
    - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/vue-cli/commits/v4.4.4/packages/@vue/cli-service)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

commit b84395b17d
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Tue Jun 16 14:58:02 2020 +0200

    build(deps): bump vue-router from 3.3.2 to 3.3.4 in /website/client (#12306)

    Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.3.2 to 3.3.4.
    - [Release notes](https://github.com/vuejs/vue-router/releases)
    - [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/vue-router/compare/v3.3.2...v3.3.4)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit d5d4afe613
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Tue Jun 16 14:57:43 2020 +0200

    build(deps): bump @vue/cli-plugin-unit-mocha in /website/client (#12303)

    Bumps [@vue/cli-plugin-unit-mocha](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-unit-mocha) from 4.4.1 to 4.4.4.
    - [Release notes](https://github.com/vuejs/vue-cli/releases)
    - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/vue-cli/commits/v4.4.4/packages/@vue/cli-plugin-unit-mocha)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit def62d5716
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Tue Jun 16 14:57:37 2020 +0200

    build(deps): bump habitica-markdown in /website/client (#12302)

    Bumps [habitica-markdown](https://github.com/HabitRPG/habitica-markdown) from 2.0.0 to 2.0.2.
    - [Release notes](https://github.com/HabitRPG/habitica-markdown/releases)
    - [Commits](https://github.com/HabitRPG/habitica-markdown/commits/v2.0.2)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit 5846898592
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Tue Jun 16 14:57:25 2020 +0200

    build(deps): bump @vue/cli-plugin-babel in /website/client (#12299)

    Bumps [@vue/cli-plugin-babel](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-babel) from 4.4.1 to 4.4.4.
    - [Release notes](https://github.com/vuejs/vue-cli/releases)
    - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/vue-cli/commits/v4.4.4/packages/@vue/cli-plugin-babel)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit 524aac4d95
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Tue Jun 16 14:57:11 2020 +0200

    build(deps): bump helmet from 3.22.0 to 3.23.0 (#12297)

    Bumps [helmet](https://github.com/helmetjs/helmet) from 3.22.0 to 3.23.0.
    - [Release notes](https://github.com/helmetjs/helmet/releases)
    - [Changelog](https://github.com/helmetjs/helmet/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/helmetjs/helmet/compare/v3.22.0...v3.23.0)

    Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit 92dc332ab9
Merge: 7902db2edc bcd3e2851c
Author: Melior <admin@habitica.com>
Date:   Fri Jun 12 00:02:52 2020 +0200

    Merge branch 'origin/develop' into Weblate.

commit 7902db2edc
Merge: f3ea5f0b62 e6b65871e7
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Thu Jun 11 16:38:48 2020 -0500

    Merge branch 'release' into develop

commit f3ea5f0b62
Author: negue <negue@users.noreply.github.com>
Date:   Thu Jun 11 21:14:33 2020 +0200

    Tasks Redesign: Colors, Title, Notes, Habit Controls, Button Style  (#12274)

    * extract color changes + habit-controls out of #12142

    * extract title / notes changes from #12142

    * extracted delete btn + style fixes of #12142

    * fix taskModal footer + advancedSettings

    * extracted the button style changes from #12142

    * remove un-used method

commit bcd3e2851c
Author: Melior <admin@habitica.com>
Date:   Thu Jun 11 20:46:57 2020 +0200

    Translated using Weblate (Vietnamese)

    Currently translated at 100.0% (83 of 83 strings)

    Translation: Habitica/Achievements
    Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/

    Translated using Weblate (Latin)

    Currently translated at 85.5% (71 of 83 strings)

    Translation: Habitica/Achievements
    Translate-URL: https://translate.habitica.com/projects/habitica/achievements/la/

    Translated using Weblate (Russian)

    Currently translated at 97.3% (2056 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

    Translated using Weblate (German)

    Currently translated at 99.8% (2110 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

    Translated using Weblate (Russian)

    Currently translated at 99.4% (533 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

    Translated using Weblate (Japanese)

    Currently translated at 97.9% (525 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (German)

    Currently translated at 99.6% (534 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (4 of 4 strings)

    Translation: Habitica/Noscript
    Translate-URL: https://translate.habitica.com/projects/habitica/noscript/ca/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (12 of 12 strings)

    Translation: Habitica/Merch
    Translate-URL: https://translate.habitica.com/projects/habitica/merch/ca/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (230 of 230 strings)

    Translation: Habitica/Character
    Translate-URL: https://translate.habitica.com/projects/habitica/character/ca/

    Translated using Weblate (Vietnamese)

    Currently translated at 80.9% (434 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (28 of 28 strings)

    Translation: Habitica/Rebirth
    Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/ca/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (31 of 31 strings)

    Translation: Habitica/Maintenance
    Translate-URL: https://translate.habitica.com/projects/habitica/maintenance/ca/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (27 of 27 strings)

    Translation: Habitica/Loginincentives
    Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/ca/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (6 of 6 strings)

    Translation: Habitica/Inventory
    Translate-URL: https://translate.habitica.com/projects/habitica/inventory/ca/

    Translated using Weblate (Catalan)

    Currently translated at 82.3% (1740 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/ca/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (63 of 63 strings)

    Translation: Habitica/Defaulttasks
    Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/ca/

    Translated using Weblate (Catalan)

    Currently translated at 100.0% (15 of 15 strings)

    Translation: Habitica/Death
    Translate-URL: https://translate.habitica.com/projects/habitica/death/ca/

    Translated using Weblate (Catalan)

    Currently translated at 99.1% (123 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ca/

    Translated using Weblate (Portuguese)

    Currently translated at 83.0% (1754 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/

    Translated using Weblate (Portuguese)

    Currently translated at 83.0% (1754 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/

    Translated using Weblate (French)

    Currently translated at 100.0% (2113 of 2113 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

    Translated using Weblate (Russian)

    Currently translated at 98.8% (530 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

    Translated using Weblate (Japanese)

    Currently translated at 97.5% (523 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (French)

    Currently translated at 100.0% (536 of 536 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/

    Translated using Weblate (Spanish)

    Currently translated at 94.6% (53 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/es/

    Translated using Weblate (Spanish)

    Currently translated at 99.1% (123 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es/

    Translated using Weblate (Spanish)

    Currently translated at 97.1% (205 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/

commit 5957930709
Author: Frank Maximus <frank@healingjourneyman.com>
Date:   Wed Jun 10 15:01:07 2020 +0200

    Display descriptive error when mongod isn't running (#12196)

    Add test:prepare:mongo task to check is mongod is running.

    Fixes: #12101

commit 1df4e687f1
Author: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Date:   Wed Jun 10 14:57:57 2020 +0200

    fix(mentions): do not fill empty mentions with following username, fixes #12272

commit 3063a38d60
Merge: 4b489fe4ca 51d20ef7e8
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Tue Jun 9 15:28:16 2020 -0500

    Merge branch 'release' into develop

commit 4b489fe4ca
Merge: afd50ddc2d 074004ec75
Author: Melior <admin@habitica.com>
Date:   Tue Jun 9 21:21:14 2020 +0200

    Merge branch 'origin/develop' into Weblate.

commit 074004ec75
Author: Melior <admin@habitica.com>
Date:   Tue Jun 9 21:21:04 2020 +0200

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (249 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (140 of 140 strings)

    Translation: Habitica/Quests
    Translate-URL: https://translate.habitica.com/projects/habitica/quests/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (173 of 173 strings)

    Translation: Habitica/Npc
    Translate-URL: https://translate.habitica.com/projects/habitica/npc/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (493 of 493 strings)

    Translation: Habitica/Groups
    Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (2107 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/

    Translated using Weblate (Portuguese (Brazil))

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/pt_BR/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (140 of 140 strings)

    Translation: Habitica/Quests
    Translate-URL: https://translate.habitica.com/projects/habitica/quests/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (493 of 493 strings)

    Translation: Habitica/Groups
    Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

    Translated using Weblate (Dutch)

    Currently translated at 94.6% (1994 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Japanese)

    Currently translated at 98.2% (520 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (Catalan)

    Currently translated at 92.0% (487 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ca/

    Translated using Weblate (Russian)

    Currently translated at 93.9% (234 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/

    Translated using Weblate (Russian)

    Currently translated at 97.4% (2053 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (522 of 522 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

    Translated using Weblate (French)

    Currently translated at 100.0% (140 of 140 strings)

    Translation: Habitica/Quests
    Translate-URL: https://translate.habitica.com/projects/habitica/quests/fr/

    Translated using Weblate (French)

    Currently translated at 100.0% (173 of 173 strings)

    Translation: Habitica/Npc
    Translate-URL: https://translate.habitica.com/projects/habitica/npc/fr/

    Translated using Weblate (French)

    Currently translated at 100.0% (493 of 493 strings)

    Translation: Habitica/Groups
    Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/

    Translated using Weblate (Russian)

    Currently translated at 99.2% (518 of 522 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

    Translated using Weblate (Vietnamese)

    Currently translated at 80.7% (427 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/

    Translated using Weblate (German)

    Currently translated at 100.0% (140 of 140 strings)

    Translation: Habitica/Quests
    Translate-URL: https://translate.habitica.com/projects/habitica/quests/de/

    Translated using Weblate (German)

    Currently translated at 100.0% (173 of 173 strings)

    Translation: Habitica/Npc
    Translate-URL: https://translate.habitica.com/projects/habitica/npc/de/

    Translated using Weblate (German)

    Currently translated at 100.0% (493 of 493 strings)

    Translation: Habitica/Groups
    Translate-URL: https://translate.habitica.com/projects/habitica/groups/de/

commit afd50ddc2d
Merge: 61ca500013 e31ce11052
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Tue Jun 9 14:17:53 2020 -0500

    Merge branch 'release' into develop

commit 61ca500013
Merge: 9ab79ef225 630c848ff5
Author: Melior <admin@habitica.com>
Date:   Mon Jun 8 21:50:11 2020 +0200

    Merge branch 'origin/develop' into Weblate.

commit 630c848ff5
Author: Melior <admin@habitica.com>
Date:   Mon Jun 8 16:37:50 2020 +0200

    Translated using Weblate (Vietnamese)

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Tasks
    Translate-URL: https://translate.habitica.com/projects/habitica/tasks/vi/

    Translated using Weblate (Vietnamese)

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/

    Translated using Weblate (Russian)

    Currently translated at 93.5% (233 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/

    Translated using Weblate (Russian)

    Currently translated at 97.2% (2049 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

    Translated using Weblate (Dutch)

    Currently translated at 94.6% (1994 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Japanese)

    Currently translated at 97.9% (518 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (696 of 696 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

    Translated using Weblate (Japanese)

    Currently translated at 97.5% (516 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (German)

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/

    Translated using Weblate (Japanese)

    Currently translated at 97.1% (514 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (Dutch)

    Currently translated at 94.5% (1992 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (German)

    Currently translated at 100.0% (249 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/

    Translated using Weblate (German)

    Currently translated at 100.0% (2107 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

    Translated using Weblate (Japanese)

    Currently translated at 96.7% (512 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (German)

    Currently translated at 99.9% (2105 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/

    Translated using Weblate (Japanese)

    Currently translated at 96.4% (510 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (Dutch)

    Currently translated at 94.4% (1990 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Dutch)

    Currently translated at 94.4% (1990 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (492 of 492 strings)

    Translation: Habitica/Groups
    Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Tasks
    Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (57 of 57 strings)

    Translation: Habitica/Spells
    Translate-URL: https://translate.habitica.com/projects/habitica/spells/ru/

    Translated using Weblate (Russian)

    Currently translated at 97.6% (168 of 172 strings)

    Translation: Habitica/Npc
    Translate-URL: https://translate.habitica.com/projects/habitica/npc/ru/

    Translated using Weblate (Russian)

    Currently translated at 98.3% (178 of 181 strings)

    Translation: Habitica/Limited
    Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (492 of 492 strings)

    Translation: Habitica/Groups
    Translate-URL: https://translate.habitica.com/projects/habitica/groups/ru/

    Translated using Weblate (Russian)

    Currently translated at 96.6% (2037 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

    Translated using Weblate (Russian)

    Currently translated at 99.6% (297 of 298 strings)

    Translation: Habitica/Generic
    Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (328 of 328 strings)

    Translation: Habitica/Front
    Translate-URL: https://translate.habitica.com/projects/habitica/front/ru/

    Translated using Weblate (Russian)

    Currently translated at 98.2% (55 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (15 of 15 strings)

    Translation: Habitica/Death
    Translate-URL: https://translate.habitica.com/projects/habitica/death/ru/

    Translated using Weblate (Russian)

    Currently translated at 99.1% (690 of 696 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

    Translated using Weblate (German)

    Currently translated at 100.0% (696 of 696 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (126 of 126 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (70 of 70 strings)

    Translation: Habitica/Contrib
    Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (230 of 230 strings)

    Translation: Habitica/Character
    Translate-URL: https://translate.habitica.com/projects/habitica/character/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (134 of 134 strings)

    Translation: Habitica/Challenge
    Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ru/

    Translated using Weblate (Russian)

    Currently translated at 99.0% (209 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/ru/

    Translated using Weblate (Chinese (Traditional))

    Currently translated at 100.0% (2107 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hant/

    Translated using Weblate (Polish)

    Currently translated at 83.6% (1763 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/pl/

    Translated using Weblate (Dutch)

    Currently translated at 94.3% (1989 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (696 of 696 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

    Translated using Weblate (Vietnamese)

    Currently translated at 96.4% (54 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/vi/

    Translated using Weblate (Vietnamese)

    Currently translated at 90.3% (75 of 83 strings)

    Translation: Habitica/Achievements
    Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Tasks
    Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ru/

    Translated using Weblate (Russian)

    Currently translated at 99.2% (691 of 696 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

    Translated using Weblate (Russian)

    Currently translated at 100.0% (134 of 134 strings)

    Translation: Habitica/Challenge
    Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ru/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (492 of 492 strings)

    Translation: Habitica/Groups
    Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

    Translated using Weblate (Dutch)

    Currently translated at 94.3% (1987 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Chinese (Traditional))

    Currently translated at 100.0% (249 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hant/

    Translated using Weblate (Dutch)

    Currently translated at 100.0% (249 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/nl/

    Translated using Weblate (English (United Kingdom))

    Currently translated at 100.0% (249 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/en_GB/

    Translated using Weblate (Dutch)

    Currently translated at 100.0% (181 of 181 strings)

    Translation: Habitica/Limited
    Translate-URL: https://translate.habitica.com/projects/habitica/limited/nl/

    Translated using Weblate (Chinese (Traditional))

    Currently translated at 100.0% (2107 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hant/

    Translated using Weblate (Dutch)

    Currently translated at 94.2% (1985 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Spanish)

    Currently translated at 91.4% (1927 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/

    Translated using Weblate (English (United Kingdom))

    Currently translated at 100.0% (2107 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/en_GB/

    Translated using Weblate (Chinese (Traditional))

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hant/

    Translated using Weblate (Dutch)

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/nl/

    Translated using Weblate (English (United Kingdom))

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/en_GB/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (696 of 696 strings)

    Translation: Habitica/Questscontent
    Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

    Translated using Weblate (Chinese (Traditional))

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hant/

    Translated using Weblate (English (United Kingdom))

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/en_GB/

    Translated using Weblate (Chinese (Traditional))

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hant/

    Translated using Weblate (English (United Kingdom))

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/en_GB/

    Translated using Weblate (Vietnamese)

    Currently translated at 85.5% (71 of 83 strings)

    Translation: Habitica/Achievements
    Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (83 of 83 strings)

    Translation: Habitica/Achievements
    Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (172 of 172 strings)

    Translation: Habitica/Npc
    Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (328 of 328 strings)

    Translation: Habitica/Front
    Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (249 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (2107 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 99.3% (2094 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/

    Translated using Weblate (French)

    Currently translated at 100.0% (249 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/

    Translated using Weblate (French)

    Currently translated at 100.0% (2107 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/

    Translated using Weblate (French)

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/

    Translated using Weblate (French)

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/fr/

    Translated using Weblate (Spanish)

    Currently translated at 99.7% (357 of 358 strings)

    Translation: Habitica/Content
    Translate-URL: https://translate.habitica.com/projects/habitica/content/es/

    Translated using Weblate (French)

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (249 of 249 strings)

    Translation: Habitica/Subscriber
    Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (28 of 28 strings)

    Translation: Habitica/Rebirth
    Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/ja/

    Translated using Weblate (Dutch)

    Currently translated at 94.1% (1983 of 2107 strings)

    Translation: Habitica/Gear
    Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

    Translated using Weblate (Dutch)

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/nl/

    Translated using Weblate (Dutch)

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/nl/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (78 of 78 strings)

    Translation: Habitica/Contrib
    Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ja/

    Translated using Weblate (Dutch)

    Currently translated at 100.0% (83 of 83 strings)

    Translation: Habitica/Achievements
    Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nl/

    Translated using Weblate (Dutch)

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/nl/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (492 of 492 strings)

    Translation: Habitica/Groups
    Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/ja/

    Translated using Weblate (Japanese)

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ja/

    Translated using Weblate (Japanese)

    Currently translated at 96.0% (508 of 529 strings)

    Translation: Habitica/Backgrounds
    Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

    Translated using Weblate (German)

    Currently translated at 100.0% (56 of 56 strings)

    Translation: Habitica/Faq
    Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/

    Translated using Weblate (German)

    Currently translated at 100.0% (124 of 124 strings)

    Translation: Habitica/Communityguidelines
    Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/de/

    Translated using Weblate (German)

    Currently translated at 100.0% (211 of 211 strings)

    Translation: Habitica/Settings
    Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/
2020-06-18 13:29:30 -05:00
Sabe Jones
048b60f79d chore(news): Bailey
and some seasonal string tweaks
2020-06-18 13:25:56 -05:00
Sabe Jones
0116c56abb chore(news): Bailey 2020-06-16 13:35:32 -05:00
Sabe Jones
873ac53e27 Squashed commit of the following:
commit f461c07ca7997362512a366eebc7d3a8fba854ee
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Thu Jun 11 16:37:14 2020 -0500

    fix(sprites): wolf alignment

commit 6ceb4ba6d1ea62892e9b335307043d78971328d0
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Thu Jun 11 14:53:07 2020 -0500

    chore(sprites): compile

commit 8b517309f531c7f151c5c18a5ca9847ab7aa5dbb
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Thu Jun 11 14:52:49 2020 -0500

    feat(content): Fluorite Magic Hatching Potion and quest
2020-06-11 16:38:05 -05:00
Sabe Jones
c4688b77fd Merge branch 'sabrecat/armoire-bgs-202006' into release 2020-06-09 14:17:15 -05:00
Sabe Jones
6253359d31 chore(news): Bailey 2020-06-01 16:40:33 -05:00
Sabe Jones
05e229ccb0 feat(content): subscriber items June 2020 2020-05-28 16:51:12 -05:00
Sabe Jones
b0f29211a8 chore(news): bailey 2020-05-21 14:59:28 -05:00
Sabe Jones
80a2e31c8e feat(content): new achievement and bundle 2020-05-19 14:00:25 -05:00
Sabe Jones
1164f5e5f5 chore(news): Bailey at Rest 2020-05-14 14:03:05 -05:00
Sabe Jones
8747a2d1b6 feat(content): reenable some May potions 2020-05-12 15:57:40 -05:00
Sabe Jones
be622e8b10 Merge branch 'release' into develop 2020-05-05 15:03:39 -05:00
Sabe Jones
8fe563aa37 feat(content): armoire, backgrounds 2020-05-05 15:02:36 -05:00
Matteo Pagliazzi
e5f1f3b279
Improve i18n caching (#12030)
* fix indentation

* wip: cache i18n responses

* cache i18n browser script to disk

* typos

* misc fixes
2020-05-05 20:31:33 +02:00
Sabe Jones
adff828c91 Merge branch 'release' into develop 2020-05-04 14:52:06 -05:00
Sabe Jones
671c90a593 chore(news): Bailey 2020-05-04 14:50:36 -05:00
negue
26767f598b
API: Adding secret.text to the user-schema (#12121) 2020-05-02 19:59:05 +02:00
Sabe Jones
4e93874483 chore(news): Last Chance Bailey 2020-04-30 13:13:18 -05:00
Matteo Pagliazzi
b947c714f0 fix(regexp): escape inputs 2020-04-28 16:00:17 +02:00
Sabe Jones
ce07d06c15 chore(news): Bailey 2020-04-23 13:59:48 -05:00
Matteo Pagliazzi
6a70487fa6 remove un-needed code 2020-04-20 23:48:48 +02:00
Matteo Pagliazzi
4fa381f153 Merge branch 'bugfix-extramonths-lost-when-subscription-terminated' of https://github.com/hamboomger/habitica into hamboomger-bugfix-extramonths-lost-when-subscription-terminated 2020-04-20 23:30:19 +02:00
negue
cbcc7cd479
remove search from private-messages (#12044)
* remove search from private-messages + paged conversations + fixes

* remove autoSize call

* add conversation border at the top

* border-bottom under `Disable Private Messages` - revert border-bottom on conversation items
2020-04-20 16:32:54 +02:00
Matteo Pagliazzi
8ca5ee99b0 Merge branch 'release' into develop 2020-04-18 16:09:40 +02:00
Matteo Pagliazzi
9364cdc2b4 fix(apple auth): do not try to parse name if it is missing, add query parameters to logs 2020-04-18 16:02:18 +02:00
Carl Vuorinen
2896cf77e0
Handle simultaneous quest accept/reject (#12090)
* Implement atomic quest accept/reject

* Persist quest.members early to avoid simultaneous handling of accept/reject

* Fix quest accept test (missing expectation)

* PR fixes
2020-04-17 22:57:31 +02:00
Bart Enkelaar
9608b9fa9f
Don't link user in markdown code blocks - Fixes #[11504] (#12069)
* Improve whitespacing in highlightMentions.js unit test

* Issue 11504 - Don't link users in markdown code blocks

Use the markdown-it parser to determine what parts of the message are code block first.
Then work from those parser tokens back to content parts that should not be handled.

Still convoluted, but can be improved once a "user mention plugin" is added to habitica-markdown.

* Issue 11504 - Put functions in JavaScript order and fix linting issues

* Issue 11504 - Use includes i.o. multiple or checks and added some context.

* Issue 11504 - Add docstring for highlightMentions and simplify fence regex

* Issue 11504 - Replace inline recursor with default parameter value
2020-04-17 22:19:11 +02:00
Matteo Pagliazzi
f71062e86c Merge branch 'release' into develop 2020-04-17 20:50:11 +02:00
Matteo Pagliazzi
24e1bfdfba add basic test, disable etag on post routes as well, paypal ipn: prevent set headers after response error 2020-04-17 14:50:09 +02:00
Matteo Pagliazzi
f757e645b7 disable caching for the /status api route 2020-04-17 14:22:32 +02:00
Matteo Pagliazzi
bf492933cc fix(cache): explicitly disable caching for most api routes 2020-04-17 14:22:20 +02:00
Matteo Pagliazzi
86d2fed76e fix(apple auth): minor fixes, make sure apple auth users are considered when sending emails 2020-04-16 23:23:08 +02:00
Sabe Jones
c8189360d6 Merge branch 'develop' into release 2020-04-16 15:17:56 -05:00
Sabe Jones
88183149c5 chore(news): Bailey 2020-04-16 15:17:14 -05:00
Matteo Pagliazzi
a8f397c674 fix(join group): do not throw if inviter has does not exist 2020-04-15 21:43:24 +02:00
Denys Dorokhov
186b929e59
API-v4 route added: 'api/v4/faq' fixes #11801 (#11905)
* feat(api-v4): new /faq route added

* refactor(server): change of function name in libs/content.js
2020-04-14 22:14:53 +02:00
Sabe Jones
67bd2d9130 feat(content): enable spring avatar customizations 2020-04-14 14:49:11 -05:00
Phillip Thelen
9d16ab7dba
Sign in with Apple (#11793)
* add date check

* achievements modal polishing

* refresh private-messages page when you are already on it

* add countbadge knob to change the example

* fix lint

* typos

* typos

* typos

* add toggle for achievements categories

* typo

* fix test

* fix edit avatar modal cannot be closed

* WIP(settings): subscriber page improvements

* WIP(subscriptions): more design build-out

* fix(css): disabled button styles

* fix(css): better Amazon targeting

* fix hide tooltip + align header correctly

* disable perfect scroll

* load messages on refresh event

* fix header label + conversation actions not breaking layout on hover

* WIP(g1g1): notif

* WIP(g1g1): notif cont'd

* fix(test): snowball change

* fix(event): feature NYE card

* chore(sprites): compile

* fix(bgs): include TT required field

* add gifting banner to the max height calculation

* chore(event): enable winter customizations

* WIP(gifting): partial modal implementation

* feat(gifting): select giftee modal

* fix(gifting): notification order, modal dismiss

* Begin implementing sign in with apple

# Conflicts:
#	package-lock.json
#	website/common/script/constants.js
#	website/server/libs/auth/social.js
#	website/server/models/user/schema.js

* Add apple sign in button to website

* fix lint errors

* fix config json

* fix(modals): correct some repops

* fix(gifting): style updates

* fix(buy): modal style changes

* fix(modals): also clean out "prev"

* Attempt workaround for sign in with apple on android

* temporarily log everything as error

* refactor(modals): hide in dismiss event

* fix temporary test failure

* changes to sign in with apple

* fix: first batch of layout issues for private messages + auto sizing textarea

* fix(modals): new dismiss logic

* fix(modals): new dismiss no go??

* Only use email scope

* print debugging

* .

* ..

* ...

* username second line - open profile on face-avatar/conversation name - fix textarea height

* temporarily disable apple auth and just return data for debugging

* Hopefully this works

* .....

* WIP(subscription): unsubscribed state

* .

* ..

* MAYBE THIS ACTUALLY WORKS???

* Implement apple sign in

* fix some urls

* fix urls

* fix redirect and auth

* attempt to also request name

* fix lint error

* WIP(subscription): partial subscribed

* chore(sprites): compile

* Change approach so that it actually works

* fix config error

* fix lint errors

* Fix

* fix lint error

* lint error

* WIP(subscription): finish subscribed

* refresh on sync

* new "you dont have any messages" style + changed min textarea height

* new conversationItem style / layout

* reset message unread on reload

* chore(npm): update package-locks

* fix styles / textarea height

* feat(subscription): revised sub page RC

* list optOut / chatRevoked informations for each conversation + show why its disabled

* Improve apple redirect view

* Fix apple icon on group task registration page

* WIP(adventure): prereqs

* Block / Unblock - correct disabled states - $gray-200 instead of 300/400

* canReceive not checking chatRevoked

* fix: faceAvatar / userLink open the selected conversation user

* check if the target user is blocking the logged-in user

* fix(subs): style tweaks

* fix(profiles): short circuit contributor
Attempted fix for #11830

* chore(sprites): compile

* fix(content): missing potion data

* fix(content): missing string

* WIP(drops): new modal

* fix(subs): moar style tweaks

* check if blocks is undefined

* max-height instead of height

* fix "no messages" state + canReceive on a new conversation

* WIP(adventure): analytics fixes etc

* Improve apple signin handling

* fixed conversations width (280px on max 768 width page)

* feat(adventure): random egg+potion on 2nd task

* fix(lint): noworkies

* fix(modal): correctly construct classes

* fix(tests): expectations and escape

* Fix typo

* use base url from env variables

* fix lint

* call autosize after message is sent

* fix urls

* always verify token

* throw error when social auth could not retrieve id

* Store emails correctly for apple auth

* Retrieve name when authenticating through apple

* Fix lint errors

* fix all lint errors

* fix(content): missing strings

* Revert "always verify token"

This reverts commit 8ac40c76bfa880f68fa3ce350a86ce2151b9cf95.

# Conflicts:
#	website/server/libs/auth/social.js

* Correctly load name

* remove extra changes

* remove extra logger call

* reset package and package-lock

* add back missing packages

* use name from apple

* add support for multiple apple public keys

* add some unit and integration tests

* add apple auth integration test

* tweak social signup buttons

* pixel pushing

Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: negue <eugen.bolz@gmail.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
2020-04-08 18:44:30 +02:00
Sabe Jones
5ccd2ae262 chore(event): seeds and sprites 2020-04-07 14:08:09 -05:00
hamboomger
b7448e2cfe fix(server-api): cancelSubscription() is no longer called twice when user leaves group 2020-04-05 15:06:16 +03:00
hamboomger
00d12e83bd refactor(db-schema): group.isSubscribed() method name changed to group.hasActiveGroupPlan() 2020-04-05 15:06:16 +03:00
Sabe Jones
25e5183370 feat(content): Armoire/BGs 2020-04 2020-04-03 15:41:35 -05:00
Sabe Jones
a2c91aae70 chore(news): Challenge and Blog Bailey 2020-04-02 16:09:36 -05:00
Sabe Jones
3ac69d5e75 Merge branch 'develop' into release 2020-04-02 15:09:54 -05:00
Matteo Pagliazzi
e92ff9737a
Automatically Logout Banned Users (#12037)
* wip

* logout banned users, fix and refactor language library and middleware

* req.locals -> res.locals

* fix tests

* redirect to login page
2020-04-02 21:46:01 +02:00
Sabe Jones
c3343c9412 fix(news): Challenge link 2020-04-01 10:23:07 -05:00
Sabe Jones
e39eafd3f0 feat(event): April Foolin 2020-04-01 06:31:39 -05:00
Sabe Jones
6d26fbc5f2 feat(content): April subscriber items 2020-03-30 16:12:03 -05:00
Sabe Jones
bb9912de89 fix(analytics): problems 2020-03-30 15:38:41 -05:00
Sabe Jones
7bdc974704 Merge branch 'develop' into release 2020-03-26 15:15:38 -05:00
Sabe Jones
fe8780d49c chore(news): Bailey 2020-03-26 15:15:25 -05:00
Sabe Jones
6e8bdf4cdf Merge branch 'release' into develop 2020-03-24 13:14:15 -05:00
Sabe Jones
3e96e54ad8 feat(event): eggy eggy 2020-03-24 13:13:50 -05:00
Denys Dorokhov
25e72ad907
Reward with negative cost can no longer be created, fixes #11855 (#11870)
* Minor refactoring in scoreTask.js

* Reward value validation added (should be >= 0)
2020-03-24 12:10:10 +01:00