Commit Graph

26 Commits

Author SHA1 Message Date
Kalista Payne a36114e904 Squashed commit of the following:
commit 4d88df1c381c4136cfe4780b6b5464d9c984bb31
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Wed Oct 30 14:24:53 2024 -0400

    fixing active/focus states

commit 630f74db6365625af210de81d577d43945f62df4
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Wed Oct 23 13:25:14 2024 -0400

    sign-up/login/debug menu updates

commit f85ef1c58e367219923c46aeebe77d1aa846b6f3
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Oct 15 13:56:36 2024 -0400

    more color standardization

commit cd2ee3350fc51016cc75fb799debeefa0b1d9b64
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Oct 15 13:39:02 2024 -0400

    updates per comments

commit e91371522bb9a6dae5c6d02eb6f16f0b632f7a24
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Fri Oct 4 14:25:45 2024 -0400

    class selection active state

commit 4fcdca1eb07eb67aacd84feb1c9357d52fd6f23f
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Thu Oct 3 14:31:00 2024 -0400

    fixing a few more buttons

commit 475e21aae7733cfa072f828c559cc0930f0ad878
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Wed Oct 2 15:57:25 2024 -0400

    line-heights converted to unitless multipliers

commit c5dca257274a60b02e1f12e3c6daf103cec53096
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Fri Sep 27 13:48:20 2024 -0400

    second pass

commit 685f4d4d64b8b234afbb702d1b8a52d4670d3825
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Thu Sep 26 16:58:59 2024 -0400

    first pass
2024-11-21 12:40:05 -06:00
Kalista Payne fbf69a4a34 Squashed commit of the following:
commit dd0a410fa6c3741dc0d6793283cf4df3c37790a5
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Mon Nov 4 14:24:30 2024 -0600

    fix(subs): center next hourglass message

commit 72d92ffd76bb43fee8ba2bbabd211e595afbd664
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Fri Nov 1 14:17:59 2024 -0500

    fix(subs): don't hide HG preview entirely

commit ea0ecb0c3d519ed3d5c42266367eaaa7283ac5de
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Fri Nov 1 13:01:06 2024 -0500

    fix(subs): Google wording and HG escape

commit 2bd2c69e18e37c8c8c7106c62f186c372d25c5d2
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Fri Nov 1 09:25:30 2024 -0500

    fix(layout): tighten cancellation note

commit eb2fc40d24
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 24 15:41:43 2024 -0500

    fix(g1g1): don't try to find Gems promo during bogo

commit d3eea86bd7
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 24 15:00:09 2024 -0500

    fix(subs): fix typeError

commit e3ae9a2d67
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 24 13:57:27 2024 -0500

    fix(subs): also redirect to subs after gift sub

commit 690163a0de
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Oct 23 16:42:38 2024 +0200

    fix test

commit 2ad7541fc0
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Oct 23 16:34:52 2024 +0200

    fix test

commit 7e337a9e59
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Oct 23 11:54:15 2024 +0200

    remove only

commit 7462b8a57f
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Oct 23 11:51:25 2024 +0200

    fix bug with incorrectly giving HG bonus

commit acd6183e95
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Mon Oct 21 17:22:26 2024 -0500

    fix(subs): unhovery and un-12-monthy

commit 935e9fd6ec
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Fri Oct 18 14:50:17 2024 -0500

    fix(subs): try again on gifts

commit 6e1fb7df38
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 17 18:19:20 2024 -0500

    fix(lint): do negate object ig

commit 71d434b94e
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 17 18:15:11 2024 -0500

    fix(lint): unnecessary ternary

commit b90b0bb9c3
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 17 17:34:24 2024 -0500

    fix(subs): gifts DON't renew

commit 19469304c5
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 17 17:13:29 2024 -0500

    fix(subs): pass autoRenews through Stripe

commit 6819e7b7e5
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 17 16:03:25 2024 -0500

    fix(subscriptions): minor visual updates

commit 74633b5e5e
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Wed Oct 16 17:27:09 2024 -0500

    fix(subscriptions): more gift layout revisions

commit a90ccb89de
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Wed Oct 16 15:37:50 2024 -0500

    fix(subscription): update layout when gifting

commit c24b2db8dc
Author: Phillip Thelen <phillip@habitica.com>
Date:   Mon Oct 14 16:11:46 2024 +0200

    fix issue with promo hourglasses

commit 7a61c72b47
Author: Phillip Thelen <phillip@habitica.com>
Date:   Mon Oct 14 15:59:40 2024 +0200

    don’t give additional HG for new sub if they already got one this month

commit f14cb09026
Author: Phillip Thelen <phillip@habitica.com>
Date:   Mon Oct 14 10:38:01 2024 +0200

    Admin panel display fixes

commit f4cff698cf
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 3 17:58:59 2024 -0500

    fix(stripe): correct redirect after success

commit c468b58f3f
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Oct 3 17:35:37 2024 -0500

    fix(subs): correct border-radius and redirect

commit 78fb9e31d6
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Wed Oct 2 17:41:49 2024 -0500

    fix(css): correct and refactor heights and selection states

commit e2babe8053
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Mon Sep 30 16:45:29 2024 -0500

    feat(subscription): max Gems progress readout

commit 61af8302a3
Author: Phillip Thelen <phillip@habitica.com>
Date:   Fri Sep 27 15:11:22 2024 +0200

    fix test

commit ef8ff0ea9e
Author: Phillip Thelen <phillip@habitica.com>
Date:   Fri Sep 27 14:14:44 2024 +0200

    show date for hourglass bonus if it was received

commit 4bafafdc8d
Author: Phillip Thelen <phillip@habitica.com>
Date:   Fri Sep 27 14:12:52 2024 +0200

    add new field for cumulative subscription count

commit 30096247b7
Author: Phillip Thelen <phillip@habitica.com>
Date:   Fri Sep 27 13:39:49 2024 +0200

    fix missing transaction type

commit 70872651b0
Author: Phillip Thelen <phillip@habitica.com>
Date:   Fri Sep 27 13:31:40 2024 +0200

    fix admin panel strings

commit f3398db65f
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Thu Sep 26 23:11:16 2024 -0500

    WIP(subs): extant Stripe state

commit c6b2020109
Author: Phillip Thelen <phillip@habitica.com>
Date:   Thu Sep 26 11:41:55 2024 +0200

    fix admin panel display

commit d9afc96d2d
Author: Phillip Thelen <phillip@habitica.com>
Date:   Thu Sep 26 11:40:16 2024 +0200

    Fix hourglass logic for upgrades

commit 6e2c8eeb64
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Sep 25 17:48:54 2024 +0200

    fix hourglass count

commit cd752fbdce
Author: Kalista Payne <sabrecat@gmail.com>
Date:   Fri Sep 20 12:24:21 2024 -0500

    WIP(frontend): draft of main subs page view

commit 0102b29d59
Author: Kalista Payne <sabe@habitica.com>
Date:   Wed Sep 18 15:29:08 2024 -0500

    fix(admin): correct logic and style for shrimple subs

commit 5469a5c5c3
Author: Kalista Payne <sabe@habitica.com>
Date:   Wed Sep 18 15:07:36 2024 -0500

    fix(test): short circuit this.

commit 526193ee6c
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Sep 18 14:42:06 2024 +0200

    fix gem limit

commit 19cf1636aa
Author: Phillip Thelen <phillip@habitica.com>
Date:   Tue Aug 13 17:00:40 2024 +0200

    return nextHourglassDate again

commit eea36e3ed5
Author: Phillip Thelen <phillip@habitica.com>
Date:   Tue Aug 13 13:11:22 2024 +0200

    subscription test improvements

commit ca78e74330
Author: Phillip Thelen <phillip@habitica.com>
Date:   Mon Aug 12 15:46:15 2024 +0200

    add more subscription tests

commit f4c4f93a08
Author: Phillip Thelen <phillip@habitica.com>
Date:   Fri Aug 9 13:35:22 2024 +0200

    finish basic implementation of new logic

commit e036742048
Author: Phillip Thelen <phillip@habitica.com>
Date:   Fri Aug 9 11:37:44 2024 +0200

    cleanup

commit 6431865688
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Aug 7 05:41:18 2024 -0400

    update cron tests

commit 930d875ae9
Author: Phillip Thelen <phillip@habitica.com>
Date:   Thu Aug 8 10:36:50 2024 +0200

    begin refactoring

commit 96623608d0
Author: Phillip Thelen <phillip@habitica.com>
Date:   Tue Aug 6 16:28:16 2024 +0200

    begin removing obsolete tests
2024-11-14 12:31:57 -06:00
Phillip Thelen d3b63abdd3 🧑‍💼🎛️ Overhaul (#15270)
* Add option to search for users by email or username in admin panel

* Make Admin panel design more consistent

* fix test

* fix width of items

* escape regex for searching users

* load own user when pressing enter on empty field

* add styling for warning buttons

* improve sub styling

* fix checkbox alignment in admin panel

* Unify date preview display

* Fix bottom button display

* admin panel display improvements

* remove autocannon file

* search improvements

* time travel button display fix

* fix loading spinner

* fix sorting

* Split email search into multiple queries

* fix email search

* remove console

* fix line break
2024-08-29 09:15:45 -05:00
Sabe Jones b49dddeb47 fix(shops): post merge cleanup 2024-06-14 18:12:22 -05:00
Sabe Jones 6e5b13668a WIP(shops): fixes and Hall of Heroes update 2024-05-16 18:49:56 -05:00
Phillip Thelen 99a7b90247 Fix linting issues 2024-04-26 13:15:30 +02:00
Sabe Jones 2f42422d35 Squashed commit of the following:
commit 44b1c8c7ba8b45cb682973fb89b70445d0f5c478
Merge: 489c15b7fd 4dadb64af0
Author: Sabe Jones <sabe@habitica.com>
Date:   Thu Feb 8 14:49:05 2024 -0600

    Merge branch 'release' into phillip/panel_profile

commit 489c15b7fd0a2a14cbdd2ef381fc525b1550965a
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Dec 14 13:29:32 2022 +0100

    allow profiles to be edited in admin panel

commit 1afaaf40891183ee6651d6b53e5d2b3bee4eb431
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Dec 14 12:50:47 2022 +0100

    include month for next hourglass date in admin panel
2024-02-08 14:49:37 -06:00
Phillip Thelen 4dadb64af0 Add Customizations and Achievements to admin panel (#15114)
* allow owned customizations to be edited in admin panel

* Allow subscription termination date to be edited more flexibly

* begin adding achievements to admin panel page

* better display for customizations in admin panel

* allow achievements to be modified in admin panel

* fix lint

* fix errors

* Improve how achievements, customizations and items are listed in admin panel

* fix naming

* fix lint error

* Fix issues with achievements in admin panel and add some tests

* handle some edgecases better

* Fix lint

* Fix sort/search on member selection modal (#15066)

* fix(birthday): correct birthday robe ownership check

* feat(content): add February items (#15090)

* update(content): add February 2024 items

* feat(content): add October content

* feat(content):update February Content

* feat(content): finish up February content

* fix(backgrounds): tweak consistency

* fix(strings): remove extra whitespace

* fix(event): add missing Valentine features

---------

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: Sabe Jones <sabe@habitica.com>

* 5.17.0

* Translated using Weblate (Ukrainian)

Currently translated at 63.6% (1918 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (189 of 189 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (427 of 427 strings)

Translated using Weblate (Spanish)

Currently translated at 88.5% (2668 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (239 of 239 strings)

Translated using Weblate (Bulgarian)

Currently translated at 15.3% (21 of 137 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 88.0% (96 of 109 strings)

Translated using Weblate (Bulgarian)

Currently translated at 98.9% (187 of 189 strings)

Translated using Weblate (Bulgarian)

Currently translated at 59.8% (503 of 840 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.6% (282 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 87.7% (2643 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 87.7% (2643 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (427 of 427 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (235 of 239 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (239 of 239 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (189 of 189 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 48.1% (66 of 137 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (109 of 109 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.8% (822 of 840 strings)

Deleted translation using Weblate (Chinese (Simplified) (zh_HK))

Deleted translation using Weblate (Chinese (Simplified) (zh_HK))

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (113 of 113 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (239 of 239 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (256 of 256 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (256 of 256 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (256 of 256 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (140 of 140 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Spanish)

Currently translated at 94.2% (215 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (113 of 113 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.5% (279 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 91.3% (390 of 427 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (239 of 239 strings)

Translated using Weblate (Italian)

Currently translated at 94.5% (226 of 239 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 37.9% (52 of 137 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 38.6% (53 of 137 strings)

Translated using Weblate (Italian)

Currently translated at 1.4% (2 of 137 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 56.0% (51 of 91 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (376 of 376 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (189 of 189 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (158 of 158 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (256 of 256 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (256 of 256 strings)

Translated using Weblate (Japanese)

Currently translated at 98.5% (2970 of 3013 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Japanese)

Currently translated at 99.2% (424 of 427 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (109 of 109 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Ukrainian)

Currently translated at 63.0% (1900 of 3013 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (109 of 109 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.7% (821 of 840 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (427 of 427 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 94.4% (2847 of 3013 strings)

Translated using Weblate (Ukrainian)

Currently translated at 62.9% (1897 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (239 of 239 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (376 of 376 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (189 of 189 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.0% (108 of 109 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (840 of 840 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.8% (223 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 94.4% (2845 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 37.9% (52 of 137 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (140 of 140 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.8% (223 of 228 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 91.9% (148 of 161 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 94.4% (2845 of 3013 strings)

Translated using Weblate (Korean)

Currently translated at 2.1% (3 of 137 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Spanish)

Currently translated at 60.4% (55 of 91 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Italian)

Currently translated at 98.6% (225 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 94.2% (2841 of 3013 strings)

Translated using Weblate (Russian)

Currently translated at 18.9% (26 of 137 strings)

Translated using Weblate (Italian)

Currently translated at 93.9% (789 of 840 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (161 of 161 strings)

Translated using Weblate (Russian)

Currently translated at 75.7% (194 of 256 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 94.2% (2841 of 3013 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 91.3% (147 of 161 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 94.2% (2841 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 59.3% (54 of 91 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (840 of 840 strings)

Translated using Weblate (Italian)

Currently translated at 98.1% (158 of 161 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (161 of 161 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (140 of 140 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (113 of 113 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 94.2% (2841 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (239 of 239 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (182 of 182 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (840 of 840 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (256 of 256 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (140 of 140 strings)

Translated using Weblate (Spanish)

Currently translated at 92.1% (210 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.5% (279 of 283 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (427 of 427 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 94.0% (2835 of 3013 strings)

Translated using Weblate (Ukrainian)

Currently translated at 62.8% (1894 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (224 of 224 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (182 of 182 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 21.1% (29 of 137 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (376 of 376 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (109 of 109 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (840 of 840 strings)

Translated using Weblate (Spanish)

Currently translated at 78.1% (200 of 256 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.1% (816 of 840 strings)

Co-authored-by: Alberto Pesquera <dashmilel@gmail.com>
Co-authored-by: Alcatraz Huo <alrcatraz@gmail.com>
Co-authored-by: Alessandro Losi <pipipe550@hotmail.com>
Co-authored-by: Delta S <deseji93@gmail.com>
Co-authored-by: Dimitar Kraev <dimkraeff@gmail.com>
Co-authored-by: Finrod <963505255@qq.com>
Co-authored-by: Gean Ribeiro <geanribeirok@gmail.com>
Co-authored-by: Ike Osenberg <ike.osenberg@gmail.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: Kedr <sergeysamori.ua@gmail.com>
Co-authored-by: Nikita Maximov <ruvemaximus@gmail.com>
Co-authored-by: Omar Bertolla <scaram@icloud.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
Co-authored-by: Roberto Tramontano <roberto.tramontano1@gmail.com>
Co-authored-by: TOMA Mitsuru <toma0001@gmail.com>
Co-authored-by: Vinicius Rodrigues <suburbanizar@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: nelly <nellychopyuk@gmail.com>
Co-authored-by: tony <duzhe163908@gmail.com>
Co-authored-by: 이수진 <govl09876@naver.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/it/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/bg/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/es/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/character/bg/
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/es/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/death/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/bg/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/it/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/front/es/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/es/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/it/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/es/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/merch/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/es/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/noscript/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/es/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Defaulttasks
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Merch
Translation: Habitica/Messages
Translation: Habitica/Noscript
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks

* fix(content): fix February background release date

* 5.17.1

* chore(repo): remove duplicate file

* chore(migrations): move various files to archive
and remove erroneous comment bars

* Translated using Weblate (Portuguese)

Currently translated at 96.4% (109 of 113 strings)

Translated using Weblate (Portuguese)

Currently translated at 97.1% (816 of 840 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.9% (2982 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.9% (2982 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (749 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.8% (2978 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.2% (2961 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (749 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (2951 of 3013 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Korean)

Currently translated at 58.0% (1748 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (2951 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 92.1% (2777 of 3013 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 73.7% (101 of 137 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (2951 of 3013 strings)

Translated using Weblate (French)

Currently translated at 98.8% (2978 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 90.9% (2741 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (376 of 376 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.2% (2871 of 3013 strings)

Translated using Weblate (French)

Currently translated at 98.5% (2969 of 3013 strings)

Translated using Weblate (French)

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Spanish)

Currently translated at 32.8% (45 of 137 strings)

Translated using Weblate (French)

Currently translated at 100.0% (109 of 109 strings)

Translated using Weblate (French)

Currently translated at 100.0% (840 of 840 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.2% (2989 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 90.5% (2729 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 90.5% (2729 of 3013 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.0% (2983 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 89.7% (2703 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 89.4% (2695 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.2% (2959 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 89.1% (2685 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (113 of 113 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Spanish)

Currently translated at 93.9% (266 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (749 of 764 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (258 of 258 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 91.9% (148 of 161 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Spanish)

Currently translated at 99.4% (182 of 183 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (376 of 376 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (258 of 258 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (258 of 258 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (228 of 228 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (131 of 131 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (427 of 427 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.1% (2867 of 3013 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.3% (2932 of 3013 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (239 of 239 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (749 of 764 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (91 of 91 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (376 of 376 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (189 of 189 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (109 of 109 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (840 of 840 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.0% (749 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (140 of 140 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (94 of 94 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 97.9% (748 of 764 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 88.0% (96 of 109 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (840 of 840 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (258 of 258 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 73.2% (189 of 258 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.6% (837 of 840 strings)

Co-authored-by: Delta S <deseji93@gmail.com>
Co-authored-by: Finrod <963505255@qq.com>
Co-authored-by: Gean Ribeiro <geanribeirok@gmail.com>
Co-authored-by: Icaro <icaro.mascarenhas@outlook.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: Natalie Luhrs <eilatan@gmail.com>
Co-authored-by: Quim Martínez Lara <quimml60@gmail.com>
Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: 김경은 <kekim.lang@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/front/es/
Translate-URL: https://translate.habitica.com/projects/habitica/front/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/front/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks

---------

Co-authored-by: Leonardo Chappuis <40621126+leonardochappuis@users.noreply.github.com>
Co-authored-by: Sabe Jones <sabe@habitica.com>
Co-authored-by: Natalie <78037386+CuriousMagpie@users.noreply.github.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Alberto Pesquera <dashmilel@gmail.com>
Co-authored-by: Alcatraz Huo <alrcatraz@gmail.com>
Co-authored-by: Alessandro Losi <pipipe550@hotmail.com>
Co-authored-by: Delta S <deseji93@gmail.com>
Co-authored-by: Dimitar Kraev <dimkraeff@gmail.com>
Co-authored-by: Finrod <963505255@qq.com>
Co-authored-by: Gean Ribeiro <geanribeirok@gmail.com>
Co-authored-by: Ike Osenberg <ike.osenberg@gmail.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: Kedr <sergeysamori.ua@gmail.com>
Co-authored-by: Nikita Maximov <ruvemaximus@gmail.com>
Co-authored-by: Omar Bertolla <scaram@icloud.com>
Co-authored-by: Roberto Tramontano <roberto.tramontano1@gmail.com>
Co-authored-by: TOMA Mitsuru <toma0001@gmail.com>
Co-authored-by: Vinicius Rodrigues <suburbanizar@gmail.com>
Co-authored-by: nelly <nellychopyuk@gmail.com>
Co-authored-by: tony <duzhe163908@gmail.com>
Co-authored-by: 이수진 <govl09876@naver.com>
Co-authored-by: CuriousMagpie <eilatan@gmail.com>
Co-authored-by: Icaro <icaro.mascarenhas@outlook.com>
Co-authored-by: Quim Martínez Lara <quimml60@gmail.com>
Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com>
Co-authored-by: 김경은 <kekim.lang@gmail.com>
2024-02-08 14:45:07 -06:00
Phillip Thelen d0e4b533e3 Add new fields to admin panel (#14943)
* Add new fields to admin panel

* fix lint

* Update hall.js

* fix(plab): plab

* fix(lint): destructure assignment

* fix(subs): coerce offset to number

---------

Co-authored-by: SabreCat <sabe@habitica.com>
2024-01-16 14:45:57 -06:00
negue 5a19c25fea Pin Habitica Eslint Config (#15057)
* Pin Habitica Eslint Config

* fix lint
2023-12-27 18:20:49 +01:00
Phillip Thelen 916cb03a3a automatic lint fixes (#14942)
* automatic lint fixes

* rerun lint

---------

Co-authored-by: negue <eugen.bolz@gmail.com>
2023-12-04 20:37:05 +01:00
Phillip Thelen d4a5823916 Fix one-off issue for monthly subs (#14643)
* Fix initial plan.consecutive.offset for 1 month subs

* fix initial values for group plan subs

* Make perkMonthCount editable in admin panel

* Add aditional info to admin panel

* Implement automatic fix for affected users

* fix(lint): exclusive test, code style

* fixes

* fix issue with initialization

---------

Co-authored-by: SabreCat <sabe@habitica.com>
2023-05-24 13:29:42 -05:00
SabreCat 61e41b539d feat(admin): show 3p note in panel 2023-04-26 16:13:42 -05:00
Phillip Thelen 77229f3e5e show year for next hourglass 2023-02-10 17:13:20 +01:00
Phillip Thelen aec2409227 lint fixes 2023-02-06 12:59:54 +01:00
SabreCat 2f5fd4019d fix(admin): don't auto calculate Gem cap
also fixes .eslintrc to stop down prop mutations from error level
2023-01-09 16:08:54 -06:00
SabreCat 259131ee3f feat(transactions): UI updates
by @negue
2022-11-15 19:28:36 -06:00
SabreCat fb780c9a2d fix(admin): reactivity with subscriptions 2022-09-13 15:52:03 -05:00
SabreCat 90f1977a49 fix(admin): sometimes 0 is correct 2022-09-06 15:09:40 -05:00
SabreCat 008314676d fix(admin): reactivity on next hourglass 2022-09-01 17:16:51 -05:00
SabreCat f364b3c06f feat(admin): consecutive months editable field and automatic calcs 2022-08-31 16:09:20 -05:00
SabreCat ae23ac12ff feat(admin): interactive subscription section fields 2022-08-30 16:56:43 -05:00
SabreCat 09d6dae75c feat(admin): provide reset cron button 2022-08-30 15:35:50 -05:00
SabreCat 0aadee550e fix(admin): add data value for expand state 2022-08-11 14:16:27 -05:00
SabreCat b593db2150 feat(admin): show subscription data 2022-08-10 16:20:32 -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 26fdcbbee5

* 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 a4f9c754ad

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