diff --git a/habitica-images b/habitica-images index fae9d4f130..973f84ead2 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit fae9d4f1301959a14a07d74d86b828175209290a +Subproject commit 973f84ead2613073f301c1e2b5496d08163f7507 diff --git a/migrations/users/pi-day.js b/migrations/users/pi-day.js index f4af8ff143..dd3f7d4f3f 100644 --- a/migrations/users/pi-day.js +++ b/migrations/users/pi-day.js @@ -3,7 +3,7 @@ import { v4 as uuid } from 'uuid'; import { model as User } from '../../website/server/models/user'; -const MIGRATION_NAME = '20220314_pi_day'; +const MIGRATION_NAME = '20230314_pi_day'; const progressCount = 1000; let count = 0; @@ -54,7 +54,7 @@ async function updateUser (user) { export default async function processUsers () { const query = { migration: { $ne: MIGRATION_NAME }, - 'auth.timestamps.loggedin': { $gt: new Date('2022-02-15') }, + 'auth.timestamps.loggedin': { $gt: new Date('2023-02-15') }, }; const fields = { diff --git a/package-lock.json b/package-lock.json index f6b5a39b0f..054271d2d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "habitica", - "version": "4.261.1", + "version": "4.262.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1b7aec5b23..c299d965e6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "habitica", "description": "A habit tracker app which treats your goals like a Role Playing Game.", - "version": "4.261.1", + "version": "4.262.2", "main": "./website/server/index.js", "dependencies": { "@babel/core": "^7.20.12", diff --git a/test/api/unit/models/group.test.js b/test/api/unit/models/group.test.js index fd5cea9b05..24cf64a250 100644 --- a/test/api/unit/models/group.test.js +++ b/test/api/unit/models/group.test.js @@ -1359,6 +1359,7 @@ describe('Group Model', () => { describe('#sendChat', () => { beforeEach(() => { sandbox.spy(User, 'update'); + sandbox.spy(User, 'updateMany'); }); it('formats message', () => { @@ -1413,8 +1414,8 @@ describe('Group Model', () => { it('updates users about new messages in party', () => { party.sendChat({ message: 'message' }); - expect(User.update).to.be.calledOnce; - expect(User.update).to.be.calledWithMatch({ + expect(User.updateMany).to.be.calledOnce; + expect(User.updateMany).to.be.calledWithMatch({ 'party._id': party._id, _id: { $ne: '' }, }); @@ -1427,8 +1428,8 @@ describe('Group Model', () => { group.sendChat({ message: 'message' }); - expect(User.update).to.be.calledOnce; - expect(User.update).to.be.calledWithMatch({ + expect(User.updateMany).to.be.calledOnce; + expect(User.updateMany).to.be.calledWithMatch({ guilds: group._id, _id: { $ne: '' }, }); @@ -1437,8 +1438,8 @@ describe('Group Model', () => { it('does not send update to user that sent the message', () => { party.sendChat({ message: 'message', user: { _id: 'user-id', profile: { name: 'user' } } }); - expect(User.update).to.be.calledOnce; - expect(User.update).to.be.calledWithMatch({ + expect(User.updateMany).to.be.calledOnce; + expect(User.updateMany).to.be.calledWithMatch({ 'party._id': party._id, _id: { $ne: 'user-id' }, }); diff --git a/website/client/src/assets/scss/markdown.scss b/website/client/src/assets/scss/markdown.scss index c1e517ed78..19f9e45bc1 100644 --- a/website/client/src/assets/scss/markdown.scss +++ b/website/client/src/assets/scss/markdown.scss @@ -50,10 +50,7 @@ h3.markdown { } a { - color: $blue-10; - &:hover, &:active, &:focus { - color: $blue-10; text-decoration: underline; } } diff --git a/website/client/src/assets/scss/typography.scss b/website/client/src/assets/scss/typography.scss index a15f2b7eae..970fd41737 100644 --- a/website/client/src/assets/scss/typography.scss +++ b/website/client/src/assets/scss/typography.scss @@ -26,19 +26,17 @@ a:not([href]), a:not([href]):hover { a, a:not([href]):not([tabindex]) { cursor: pointer; + color: $purple-300; - &.standard-link { - color: $blue-10; + &:hover, &:active, &:focus { + text-decoration: underline; + color: $purple-300; + } - &:hover, &:active, &:focus { - text-decoration: underline; - } - - &[disabled="disabled"] { - color: $gray-300; - text-decoration: none; - cursor: default; - } + &[disabled="disabled"] { + color: $gray-300; + text-decoration: none; + cursor: default; } &.small-link { diff --git a/website/client/src/components/appFooter.vue b/website/client/src/components/appFooter.vue index 371abef107..69ec6b0e2f 100644 --- a/website/client/src/components/appFooter.vue +++ b/website/client/src/components/appFooter.vue @@ -108,6 +108,7 @@ v-if="user" > @@ -479,10 +480,6 @@ footer { color: $purple-300; text-decoration: underline; } - a:not([href]):not([class]):hover { // needed to make "report a bug"'s hover state correct - color: $purple-300; - text-decoration: underline; - } column-gap: 1.5rem; display: grid; @@ -682,11 +679,6 @@ h3 { footer { padding: 24px 16px; - a:not([href]):not([class]):hover { // needed to make "report a bug"'s hover state correct - color: $purple-300; - text-decoration: underline; - } - column-gap: 1.5rem; display: grid; grid-template-areas: @@ -726,10 +718,6 @@ h3 { @media (max-width: 1024px) and (min-width: 768px) { footer { padding: 24px 24px; - a:not([href]):not([class]):hover { // needed to make "report a bug"'s hover state correct - color: $purple-300; - text-decoration: underline; - } } .desktop { diff --git a/website/client/src/components/bugReportModal.vue b/website/client/src/components/bugReportModal.vue index 92d096264d..8712c910d3 100644 --- a/website/client/src/components/bugReportModal.vue +++ b/website/client/src/components/bugReportModal.vue @@ -159,7 +159,6 @@ label { } .cancel-link { - color: $blue-10; line-height: 1.71; } diff --git a/website/client/src/components/bugReportSuccessModal.vue b/website/client/src/components/bugReportSuccessModal.vue index cc778de2b4..337e5580cd 100644 --- a/website/client/src/components/bugReportSuccessModal.vue +++ b/website/client/src/components/bugReportSuccessModal.vue @@ -107,7 +107,6 @@ label { } .cancel-link { - color: $blue-10; line-height: 1.71; } diff --git a/website/client/src/components/chat/reportFlagModal.vue b/website/client/src/components/chat/reportFlagModal.vue index 53b2f0f020..1860eec5b7 100644 --- a/website/client/src/components/chat/reportFlagModal.vue +++ b/website/client/src/components/chat/reportFlagModal.vue @@ -77,7 +77,6 @@ } a.cancel-link { - color: $blue-10; margin-right: .5em; } diff --git a/website/client/src/components/groups/inviteModal.vue b/website/client/src/components/groups/inviteModal.vue index 8dea93eaf9..81872c01cd 100644 --- a/website/client/src/components/groups/inviteModal.vue +++ b/website/client/src/components/groups/inviteModal.vue @@ -78,7 +78,6 @@ @import '~@/assets/scss/colors.scss'; a:not([href]) { - color: $blue-10; font-size: 16px; } diff --git a/website/client/src/components/groups/questDetailModal.vue b/website/client/src/components/groups/questDetailModal.vue index f5a08c5714..ecdc07b01a 100644 --- a/website/client/src/components/groups/questDetailModal.vue +++ b/website/client/src/components/groups/questDetailModal.vue @@ -245,10 +245,6 @@ text-align: center; color: $gray-100; - - a { - color: $blue-10; - } } #quest-detail-modal { diff --git a/website/client/src/components/groups/questSidebarSection.vue b/website/client/src/components/groups/questSidebarSection.vue index 994936bbd1..c8ff89e822 100644 --- a/website/client/src/components/groups/questSidebarSection.vue +++ b/website/client/src/components/groups/questSidebarSection.vue @@ -377,11 +377,9 @@ .members-invited { min-height: 1rem; - color: $blue-10; margin: 0; &:hover, &:focus { - color: $blue-10; text-decoration: underline; } } diff --git a/website/client/src/components/groups/tavern.vue b/website/client/src/components/groups/tavern.vue index 5853384691..712eed7cb6 100644 --- a/website/client/src/components/groups/tavern.vue +++ b/website/client/src/components/groups/tavern.vue @@ -346,6 +346,7 @@
  • @@ -521,21 +522,6 @@ margin-left: .5em; } -// formats the report a bug link to match the others - a:not([href]) { - &:not([role=button]) { - color: #007bff; - text-decoration: none; - } - } - - a:not([href]):hover { - &:not([role=button]) { - color: #0056b3; - text-decoration: underline; - } - } - .tier1-icon, .tier2-icon { width: 11px; } diff --git a/website/client/src/components/header/notifications/partyInvitation.vue b/website/client/src/components/header/notifications/partyInvitation.vue index b454d02091..b919e9442a 100644 --- a/website/client/src/components/header/notifications/partyInvitation.vue +++ b/website/client/src/components/header/notifications/partyInvitation.vue @@ -5,7 +5,14 @@ :notification="notification" >
    -
    +
    +
    {{ $t('dismissAll') }} diff --git a/website/client/src/components/payments/cancelModalConfirm.vue b/website/client/src/components/payments/cancelModalConfirm.vue index 680e8919aa..d5e0823ac2 100644 --- a/website/client/src/components/payments/cancelModalConfirm.vue +++ b/website/client/src/components/payments/cancelModalConfirm.vue @@ -31,7 +31,6 @@ {{ $t('neverMind') }}
    diff --git a/website/client/src/components/payments/selectUserModal.vue b/website/client/src/components/payments/selectUserModal.vue index 818b98c621..afe8181fb5 100644 --- a/website/client/src/components/payments/selectUserModal.vue +++ b/website/client/src/components/payments/selectUserModal.vue @@ -180,7 +180,6 @@ @import '~@/assets/scss/colors.scss'; a:not([href]) { - color: $blue-10; font-size: 0.875rem; line-height: 1.71; } diff --git a/website/client/src/components/settings/site.vue b/website/client/src/components/settings/site.vue index 671e94da39..c8021b9605 100644 --- a/website/client/src/components/settings/site.vue +++ b/website/client/src/components/settings/site.vue @@ -7,6 +7,38 @@ {{ $t('settings') }}
    +
    +
    {{ $t('pauseDailies') }}
    +

    {{ $t('sleepDescription') }}

    +
      +
    • + {{ $t('sleepBullet1') }} +
    • +
    • + {{ $t('sleepBullet2') }} +
    • +
    • + {{ $t('sleepBullet3') }} +
    • +
    + + +
    +
    {{ $t('language') }}