mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 06:37:23 +01:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6d4accc43d | ||
|
|
800d8c20c9 | ||
|
|
77a4b2e25e | ||
|
|
c16ff32d49 | ||
|
|
5b4cf689b8 | ||
|
|
72539f9ba3 | ||
|
|
dabd466719 | ||
|
|
8bf2304330 | ||
|
|
6937dc4e4e | ||
|
|
2917955ef0 | ||
|
|
55d13e44d4 |
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"version": "5.42.1",
|
||||
"version": "5.42.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "habitica",
|
||||
"version": "5.42.1",
|
||||
"version": "5.42.2",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.10",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "5.42.1",
|
||||
"version": "5.42.2",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.10",
|
||||
|
||||
@@ -672,7 +672,7 @@ export default {
|
||||
|
||||
this.login();
|
||||
},
|
||||
async forgotPasswordLink () {
|
||||
forgotPasswordLink: debounce(async function forgotPassLink () {
|
||||
if (!this.username) {
|
||||
window.alert(this.$t('missingEmail')); // eslint-disable-line no-alert
|
||||
return;
|
||||
@@ -683,7 +683,7 @@ export default {
|
||||
});
|
||||
|
||||
window.alert(this.$t('newPassSent')); // eslint-disable-line no-alert
|
||||
},
|
||||
}, 500),
|
||||
async resetPasswordSetNewOneLink () {
|
||||
if (!this.password) {
|
||||
window.alert(this.$t('missingNewPassword')); // eslint-disable-line no-alert
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<div
|
||||
v-if="!group.purchased.plan.dateTerminated
|
||||
&& group.purchased.plan.paymentMethod === 'Stripe'"
|
||||
class="btn btn-primary"
|
||||
class="btn btn-primary mb-3"
|
||||
@click="redirectToStripeEdit({groupId: group.id})"
|
||||
>
|
||||
{{ $t('subUpdateCard') }}
|
||||
|
||||
@@ -491,6 +491,9 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
mapProfileLinksToModal () {
|
||||
if (!this.$refs?.markdownContainer) {
|
||||
return;
|
||||
}
|
||||
const links = this.$refs.markdownContainer.getElementsByTagName('a');
|
||||
for (let i = 0; i < links.length; i += 1) {
|
||||
let link = links[i].pathname;
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
>
|
||||
</p>
|
||||
<div
|
||||
v-if="paymentMethodLogo.icon"
|
||||
class="svg svg-icon mb-4"
|
||||
:class="paymentMethodLogo.class"
|
||||
v-html="paymentMethodLogo.icon"
|
||||
@@ -205,6 +206,13 @@
|
||||
<div>{{ $t('subUpdateCard') }}</div>
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
v-once
|
||||
v-if="!hasGroupPlan"
|
||||
class="small text-center mb-4"
|
||||
>
|
||||
{{ $t('subscriptionBillingFYIShort') }}
|
||||
</div>
|
||||
<div
|
||||
v-if="purchasedPlanExtraMonthsDetails.months > 0"
|
||||
class="extra-months green-10 py-2 px-3 mb-4"
|
||||
@@ -409,6 +417,7 @@
|
||||
<div class="d-flex flex-column align-items-center mt-3">
|
||||
<div
|
||||
v-once
|
||||
v-if="!hasSubscription"
|
||||
class="small gray-100 w-50 text-center mb-5"
|
||||
>
|
||||
{{ $t('subscriptionBillingFYI') }}
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
<privacy-banner
|
||||
class="privacy-banner"
|
||||
/>
|
||||
<div class="bg-purple-300 white">
|
||||
<div class="bg-purple-300 white pt-5">
|
||||
<div>
|
||||
<div
|
||||
id="intro-signup"
|
||||
>
|
||||
<div class="d-flex justify-content-center">
|
||||
<div class="d-flex justify-content-center pb-5 mb-5">
|
||||
<div class="w-33 mr-5 mt-5">
|
||||
<img
|
||||
src="@/assets/images/home/home-main@3x.png"
|
||||
|
||||
@@ -273,5 +273,6 @@
|
||||
"earn2GemsGift": "They'll earn <strong>+2 Gems</strong> every month they're subscribed",
|
||||
"maxGemCapGift": "They'll have the max <strong>Gem Cap</strong>",
|
||||
"subscribeAgainContinueHourglasses": "Subscribe again to continue receiving Mystic Hourglasses",
|
||||
"subscriptionBillingFYI": "Subscriptions automatically renew unless you cancel at least 24 hours before the end of the current period. You can manage your subscription from the Subscription tab in settings. Your account will be charged within 24 hours of your renewal date, at the same price you initially paid."
|
||||
"subscriptionBillingFYI": "Subscriptions automatically renew unless you cancel at least 24 hours before the end of the current period. You can manage your subscription from the Subscription tab in settings. Your account will be charged within 24 hours of your renewal date, at the same price you initially paid.",
|
||||
"subscriptionBillingFYIShort": "Subscriptions automatically renew unless you cancel at least 24 hours before the end of the current period. Your account will be charged within 24 hours of your renewal date, at the same price you initially paid."
|
||||
}
|
||||
|
||||
@@ -109,8 +109,8 @@ export const REPEATING_EVENTS = {
|
||||
foodSeason: 'Pie',
|
||||
},
|
||||
giftOneGetOne: {
|
||||
start: new Date('1970-12-18T04:00-05:00'),
|
||||
end: new Date('1970-01-05T23:59-05:00'),
|
||||
start: new Date('1970-12-16T04:00-05:00'),
|
||||
end: new Date('1970-01-09T23:59-05:00'),
|
||||
promo: 'g1g1',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -98,6 +98,11 @@ export async function loginSocial (req, res) { // eslint-disable-line import/pre
|
||||
throw new NotFound(res.t('userNotFound'));
|
||||
}
|
||||
|
||||
let sanitizedUsername = username.replace(/[^a-zA-Z0-9_-]/g, '');
|
||||
if (!sanitizedUsername) {
|
||||
sanitizedUsername = generateUsername();
|
||||
}
|
||||
|
||||
if (existingUser) {
|
||||
existingUser.auth[network] = {
|
||||
id: profile.id,
|
||||
@@ -112,8 +117,8 @@ export async function loginSocial (req, res) { // eslint-disable-line import/pre
|
||||
emails: profile.emails,
|
||||
},
|
||||
local: {
|
||||
username,
|
||||
lowerCaseUsername: username.toLowerCase(),
|
||||
username: sanitizedUsername,
|
||||
lowerCaseUsername: sanitizedUsername.toLowerCase(),
|
||||
email,
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user