Sept 26 fixes (#9081)
* Fixed layering of avatar * Fixed navbar padding on small screens * Dropdowns go left * Adjusted member details styles * Fixed task tag display * Added toggle to buy gems * Began moving presskit * Fixed easing and validating immediately * Added hover state to login and fixed transitions for social buttons * Fixed more style issues * Fixed overflow * Added email warning * Show login button on mobile * Some column adjustments for mobile * Fixed email/username confusion
BIN
website/client/assets/images/presskit/Boss/Basi-List.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 30 KiB |
BIN
website/client/assets/images/presskit/Boss/Laundromancer.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
website/client/assets/images/presskit/Boss/Necro-Vice.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
website/client/assets/images/presskit/Boss/SnackLess Monster.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
website/client/assets/images/presskit/Boss/Stagnant Dishes.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
website/client/assets/images/presskit/Logo/Android.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
website/client/assets/images/presskit/Logo/Habitica Gryphon.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
website/client/assets/images/presskit/Logo/Icon with Text.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
website/client/assets/images/presskit/Logo/Icon.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
website/client/assets/images/presskit/Logo/Text.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
website/client/assets/images/presskit/Logo/iOS.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
website/client/assets/images/presskit/Promo/Promo - Thin.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
website/client/assets/images/presskit/Promo/Promo.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 140 KiB |
BIN
website/client/assets/images/presskit/Samples/Android/Party.png
Normal file
|
After Width: | Height: | Size: 172 KiB |
BIN
website/client/assets/images/presskit/Samples/Android/Reward.png
Normal file
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 308 KiB |
BIN
website/client/assets/images/presskit/Samples/Android/Tavern.png
Normal file
|
After Width: | Height: | Size: 147 KiB |
BIN
website/client/assets/images/presskit/Samples/Android/User.png
Normal file
|
After Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 32 KiB |
BIN
website/client/assets/images/presskit/Samples/Website/Guilds.png
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
website/client/assets/images/presskit/Samples/Website/Market.png
Normal file
|
After Width: | Height: | Size: 169 KiB |
|
After Width: | Height: | Size: 624 KiB |
BIN
website/client/assets/images/presskit/Samples/iOS/Boss.png
Normal file
|
After Width: | Height: | Size: 372 KiB |
BIN
website/client/assets/images/presskit/Samples/iOS/Level Up.png
Normal file
|
After Width: | Height: | Size: 324 KiB |
BIN
website/client/assets/images/presskit/Samples/iOS/Party.png
Normal file
|
After Width: | Height: | Size: 360 KiB |
BIN
website/client/assets/images/presskit/Samples/iOS/Pets.png
Normal file
|
After Width: | Height: | Size: 296 KiB |
BIN
website/client/assets/images/presskit/Samples/iOS/Tasks Page.png
Normal file
|
After Width: | Height: | Size: 191 KiB |
BIN
website/client/assets/images/presskit/presskit.zip
Normal file
@@ -3,11 +3,12 @@ div
|
|||||||
create-party-modal
|
create-party-modal
|
||||||
#app-header.row(:class="{'hide-header': $route.name === 'groupPlan'}")
|
#app-header.row(:class="{'hide-header': $route.name === 'groupPlan'}")
|
||||||
members-modal(:hide-badge="true")
|
members-modal(:hide-badge="true")
|
||||||
member-details(:member="user")
|
.col-6
|
||||||
|
member-details(:member="user")
|
||||||
.view-party(v-if="user.party && user.party._id && partyMembers && partyMembers.length > 1")
|
.view-party(v-if="user.party && user.party._id && partyMembers && partyMembers.length > 1")
|
||||||
// TODO button should open the party members modal
|
// TODO button should open the party members modal
|
||||||
button.btn.btn-primary(@click='openPartyModal()') {{ $t('viewParty') }}
|
button.btn.btn-primary(@click='openPartyModal()') {{ $t('viewParty') }}
|
||||||
.party-members.d-flex(
|
.party-members.col-6.d-flex(
|
||||||
v-if="partyMembers && partyMembers.length > 1",
|
v-if="partyMembers && partyMembers.length > 1",
|
||||||
v-resize="1500",
|
v-resize="1500",
|
||||||
@resized="setPartyMembersWidth($event)"
|
@resized="setPartyMembersWidth($event)"
|
||||||
@@ -21,7 +22,7 @@ div
|
|||||||
@onHover="expandMember(member._id)",
|
@onHover="expandMember(member._id)",
|
||||||
:expanded="member._id === expandedMember",
|
:expanded="member._id === expandedMember",
|
||||||
)
|
)
|
||||||
.no-party.d-flex.justify-content-center.text-center(v-else)
|
.no-party.col-6.d-flex.justify-content-center.text-center(v-else)
|
||||||
.align-self-center(v-once)
|
.align-self-center(v-once)
|
||||||
h3 {{ $t('battleWithFriends') }}
|
h3 {{ $t('battleWithFriends') }}
|
||||||
span.small-text(v-html="$t('inviteFriendsParty')")
|
span.small-text(v-html="$t('inviteFriendsParty')")
|
||||||
|
|||||||
@@ -105,6 +105,12 @@ div
|
|||||||
padding: .5em !important;
|
padding: .5em !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dropdown-menu {
|
||||||
|
position: absolute !important;
|
||||||
|
left: -10em;
|
||||||
|
top: -.5em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width : 1224px) and (min-width: 1200px) {
|
@media only screen and (max-width : 1224px) and (min-width: 1200px) {
|
||||||
@@ -133,6 +139,12 @@ div
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 1280px) {
|
||||||
|
.nav-link {
|
||||||
|
padding: .8em 1em !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
nav.navbar {
|
nav.navbar {
|
||||||
background: $purple-100 url(~assets/svg/for-css/bits.svg) right no-repeat;
|
background: $purple-100 url(~assets/svg/for-css/bits.svg) right no-repeat;
|
||||||
padding-left: 25px;
|
padding-left: 25px;
|
||||||
|
|||||||
@@ -279,6 +279,11 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async register () {
|
async register () {
|
||||||
|
if (!this.email) {
|
||||||
|
alert('Email is required');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.password !== this.passwordConfirm) {
|
if (this.password !== this.passwordConfirm) {
|
||||||
alert('Passwords must match');
|
alert('Passwords must match');
|
||||||
return;
|
return;
|
||||||
@@ -314,6 +319,11 @@ export default {
|
|||||||
window.location.href = '/';
|
window.location.href = '/';
|
||||||
},
|
},
|
||||||
async login () {
|
async login () {
|
||||||
|
if (!this.username) {
|
||||||
|
alert('Email is required');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
await this.$store.dispatch('auth:login', {
|
await this.$store.dispatch('auth:login', {
|
||||||
username: this.username,
|
username: this.username,
|
||||||
// email: this.email,
|
// email: this.email,
|
||||||
|
|||||||
@@ -18,9 +18,9 @@
|
|||||||
span(:class="'chair_' + member.preferences.chair")
|
span(:class="'chair_' + member.preferences.chair")
|
||||||
span(:class="getGearClass('back')")
|
span(:class="getGearClass('back')")
|
||||||
span(:class="skinClass")
|
span(:class="skinClass")
|
||||||
span.head_0
|
|
||||||
span(:class="member.preferences.size + '_shirt_' + member.preferences.shirt")
|
span(:class="member.preferences.size + '_shirt_' + member.preferences.shirt")
|
||||||
span(:class="member.preferences.size + '_' + getGearClass('armor')")
|
span(:class="member.preferences.size + '_' + getGearClass('armor')")
|
||||||
|
span.head_0
|
||||||
span(:class="getGearClass('back_collar')")
|
span(:class="getGearClass('back_collar')")
|
||||||
span(:class="getGearClass('body')")
|
span(:class="getGearClass('body')")
|
||||||
template(v-for="type in ['base', 'bangs', 'mustache', 'beard']")
|
template(v-for="type in ['base', 'bangs', 'mustache', 'beard']")
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
div
|
.row.member-details(:class="{ condensed, expanded }", @click='showMemberModal(member)')
|
||||||
.row.member-details(:class="{ condensed, expanded }", @click='showMemberModal(member)')
|
|
||||||
.col-4
|
.col-4
|
||||||
avatar(:member="member",
|
avatar(:member="member",
|
||||||
@click.native="$emit('click')",
|
@click.native="$emit('click')",
|
||||||
@@ -13,17 +12,17 @@ div
|
|||||||
.is-buffed(v-if="isBuffed")
|
.is-buffed(v-if="isBuffed")
|
||||||
.svg-icon(v-html="icons.buff")
|
.svg-icon(v-html="icons.buff")
|
||||||
span.small-text.character-level {{ characterLevel }}
|
span.small-text.character-level {{ characterLevel }}
|
||||||
.progress-container.d-flex
|
.progress-container
|
||||||
.svg-icon(v-html="icons.health")
|
.svg-icon(v-html="icons.health")
|
||||||
.progress
|
.progress
|
||||||
.progress-bar.bg-health(:style="{width: `${percent(member.stats.hp, MAX_HEALTH)}%`}")
|
.progress-bar.bg-health(:style="{width: `${percent(member.stats.hp, MAX_HEALTH)}%`}")
|
||||||
span.small-text {{member.stats.hp | statFloor}} / {{MAX_HEALTH}}
|
span.small-text {{member.stats.hp | statFloor}} / {{MAX_HEALTH}}
|
||||||
.progress-container.d-flex
|
.progress-container
|
||||||
.svg-icon(v-html="icons.experience")
|
.svg-icon(v-html="icons.experience")
|
||||||
.progress
|
.progress
|
||||||
.progress-bar.bg-experience(:style="{width: `${percent(member.stats.exp, toNextLevel)}%`}")
|
.progress-bar.bg-experience(:style="{width: `${percent(member.stats.exp, toNextLevel)}%`}")
|
||||||
span.small-text {{member.stats.exp | statFloor}} / {{toNextLevel}}
|
span.small-text {{member.stats.exp | statFloor}} / {{toNextLevel}}
|
||||||
.progress-container.d-flex(v-if="hasClass")
|
.progress-container(v-if="hasClass")
|
||||||
.svg-icon(v-html="icons.mana")
|
.svg-icon(v-html="icons.mana")
|
||||||
.progress
|
.progress
|
||||||
.progress-bar.bg-mana(:style="{width: `${percent(member.stats.mp, maxMP)}%`}")
|
.progress-bar.bg-mana(:style="{width: `${percent(member.stats.mp, maxMP)}%`}")
|
||||||
@@ -111,7 +110,7 @@ div
|
|||||||
.character-level {
|
.character-level {
|
||||||
display: block;
|
display: block;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
margin-bottom: 16px;
|
margin-bottom: .5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.is-buffed {
|
.is-buffed {
|
||||||
@@ -136,7 +135,7 @@ div
|
|||||||
}
|
}
|
||||||
|
|
||||||
.progress-container {
|
.progress-container {
|
||||||
margin-bottom: 12px;
|
margin-bottom: .5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-container > span {
|
.progress-container > span {
|
||||||
@@ -149,11 +148,12 @@ div
|
|||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
margin-top: -4px;
|
padding-top: .3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-container > .progress {
|
.progress-container > .progress {
|
||||||
width: 303px;
|
width: 80%;
|
||||||
|
min-width: 200px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
@@ -165,6 +165,11 @@ div
|
|||||||
height: 16px;
|
height: 16px;
|
||||||
min-width: 0px;
|
min-width: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.progress-container .svg-icon, .progress-container .progress {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -39,14 +39,14 @@
|
|||||||
.gem-text {{ $t('gems') }}
|
.gem-text {{ $t('gems') }}
|
||||||
.divider
|
.divider
|
||||||
button.btn.btn-primary(@click='gemAmount = 4') {{gemAmount === 4 ? $t('selected') : '$1.00'}}
|
button.btn.btn-primary(@click='gemAmount = 4') {{gemAmount === 4 ? $t('selected') : '$1.00'}}
|
||||||
.card.text-center.col-3(:class="{active: gemAmount === 21}")
|
.card.text-center.col-3(:class="{active: gemAmount === 21 }")
|
||||||
.card-img-top
|
.card-img-top
|
||||||
.mx-auto(v-html='icons.twentyOneGems', style='"height: 55px; width: 47.5px; margin-top: 1.85em;"')
|
.mx-auto(v-html='icons.twentyOneGems', style='"height: 55px; width: 47.5px; margin-top: 1.85em;"')
|
||||||
.card-body
|
.card-body
|
||||||
.gem-count 20
|
.gem-count 20
|
||||||
.gem-text {{ $t('gems') }}
|
.gem-text {{ $t('gems') }}
|
||||||
.divider
|
.divider
|
||||||
button.btn.btn-primary(@click='gemAmount = 21') {{gemAmount === 21 ? $t('selected') : '$5.00'}}
|
button.btn.btn-primary(@click='gemAmount === 21 ? gemAmount = 0 : gemAmount = 21') {{gemAmount === 21 ? $t('selected') : '$5.00'}}
|
||||||
//.card.text-center(:class="{active: gemAmount === 42}")
|
//.card.text-center(:class="{active: gemAmount === 42}")
|
||||||
.card-img-top
|
.card-img-top
|
||||||
.mx-auto(v-html='icons.fortyTwoGems', style='"height: 49.5px; width: 51px; margin-top: 1.9em;"')
|
.mx-auto(v-html='icons.fortyTwoGems', style='"height: 49.5px; width: 51px; margin-top: 1.9em;"')
|
||||||
|
|||||||
@@ -28,12 +28,19 @@
|
|||||||
router-link.dropdown-item(to='/static/faq') {{ $t('faq') }}
|
router-link.dropdown-item(to='/static/faq') {{ $t('faq') }}
|
||||||
router-link.dropdown-item(to='/static/plans') {{ $t('groupPlans') }}
|
router-link.dropdown-item(to='/static/plans') {{ $t('groupPlans') }}
|
||||||
button.btn.btn-primary.pull-right(@click='playButtonClick()', v-if='$route.name !== "home"') {{ $t('playButtonFull') }}
|
button.btn.btn-primary.pull-right(@click='playButtonClick()', v-if='$route.name !== "home"') {{ $t('playButtonFull') }}
|
||||||
router-link.btn.btn-primary.login-button.pull-right(to='/login', v-else) {{ $t('login') }}
|
router-link.btn.btn-primary.login-button.pull-right(to='/login', v-if='$route.name === "home"') {{ $t('login') }}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
@import '~client/assets/scss/colors.scss';
|
@import '~client/assets/scss/colors.scss';
|
||||||
|
|
||||||
|
@media only screen and (max-width : 750px) {
|
||||||
|
.login-button {
|
||||||
|
margin: 0 auto !important;
|
||||||
|
margin-top: 1.8em !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.btn-primary.pull-right {
|
.btn-primary.pull-right {
|
||||||
height: 2.5em;
|
height: 2.5em;
|
||||||
margin: auto 0px auto auto;
|
margin: auto 0px auto auto;
|
||||||
|
|||||||
@@ -7,11 +7,11 @@
|
|||||||
#intro-signup.purple-1
|
#intro-signup.purple-1
|
||||||
.container
|
.container
|
||||||
.row
|
.row
|
||||||
.col-6
|
.col-12.col-sm-6.col-md-6.col-lg-6
|
||||||
img(src='~assets/images/home/home-main@3x.png', width='357px')
|
img(src='~assets/images/home/home-main@3x.png', width='357px')
|
||||||
h1 {{$t('motivateYourself')}}
|
h1 {{$t('motivateYourself')}}
|
||||||
p.section-main {{$t('timeToGetThingsDone')}}
|
p.section-main {{$t('timeToGetThingsDone')}}
|
||||||
.col-6
|
.col-12.col-sm-6.col-md-6.col-lg-6
|
||||||
h3.text-center {{$t('singUpForFree')}}
|
h3.text-center {{$t('singUpForFree')}}
|
||||||
div.text-center
|
div.text-center
|
||||||
button.social-button(@click='socialAuth("facebook")')
|
button.social-button(@click='socialAuth("facebook")')
|
||||||
@@ -23,9 +23,9 @@
|
|||||||
.strike
|
.strike
|
||||||
span {{$t('or')}}
|
span {{$t('or')}}
|
||||||
.form
|
.form
|
||||||
input.form-control(type='text', placeholder='Login Name', v-model='username', :class='{"input-valid": username.length > 0}')
|
input.form-control(type='text', placeholder='Login Name', v-model='username', :class='{"input-valid": username.length > 3}')
|
||||||
input.form-control(type='email', placeholder='Email', v-model='email', :class='{"input-invalid": emailInvalid, "input-valid": emailValid}')
|
input.form-control(type='email', placeholder='Email', v-model='email', :class='{"input-invalid": emailInvalid, "input-valid": emailValid}')
|
||||||
input.form-control(type='password', placeholder='Password', v-model='password', :class='{"input-valid": password.length > 0}')
|
input.form-control(type='password', placeholder='Password', v-model='password', :class='{"input-valid": password.length > 3}')
|
||||||
input.form-control(type='password', placeholder='Confirm Password', v-model='passwordConfirm', :class='{"input-invalid": passwordConfirmInvalid, "input-valid": passwordConfirmValid}')
|
input.form-control(type='password', placeholder='Confirm Password', v-model='passwordConfirm', :class='{"input-invalid": passwordConfirmInvalid, "input-valid": passwordConfirmValid}')
|
||||||
p.form-text(v-once, v-html="$t('termsAndAgreement')")
|
p.form-text(v-once, v-html="$t('termsAndAgreement')")
|
||||||
button.sign-up(@click='register()') {{$t('signup')}}
|
button.sign-up(@click='register()') {{$t('signup')}}
|
||||||
@@ -37,19 +37,19 @@
|
|||||||
.pixel-horizontal.svg-icon(v-html='icons.pixelHorizontal')
|
.pixel-horizontal.svg-icon(v-html='icons.pixelHorizontal')
|
||||||
.container
|
.container
|
||||||
.row
|
.row
|
||||||
.col-6.offset-3.text-center
|
.col-12.col-sm-6.col-md-6.col-lg-6.offset-3.text-center
|
||||||
h2 {{$t('gamifyYourLife')}}
|
h2 {{$t('gamifyYourLife')}}
|
||||||
p.section-main {{$t('aboutHabitica')}}
|
p.section-main {{$t('aboutHabitica')}}
|
||||||
.row
|
.row
|
||||||
.col-4
|
.col-12.col-sm-4
|
||||||
img.track-habits(src='~assets/images/home/track-habits@3x.png', width='354px', height='228px')
|
img.track-habits(src='~assets/images/home/track-habits@3x.png', width='354px', height='228px')
|
||||||
strong {{$t('trackYourGoals')}}
|
strong {{$t('trackYourGoals')}}
|
||||||
p {{$t('trackYourGoalsDesc')}}
|
p {{$t('trackYourGoalsDesc')}}
|
||||||
.col-4
|
.col-12.col-sm-4
|
||||||
img(src='~assets/images/home/earn-rewards@3x.png', width='316px', height='244px')
|
img(src='~assets/images/home/earn-rewards@3x.png', width='316px', height='244px')
|
||||||
strong {{$t('earnRewards')}}
|
strong {{$t('earnRewards')}}
|
||||||
p {{$t('earnRewardsDesc')}}
|
p {{$t('earnRewardsDesc')}}
|
||||||
.col-4
|
.col-12.col-sm-4
|
||||||
img(src='~assets/images/home/battle-monsters@3x.png', width='303px', height='244px')
|
img(src='~assets/images/home/battle-monsters@3x.png', width='303px', height='244px')
|
||||||
strong {{$t('battleMonsters')}}
|
strong {{$t('battleMonsters')}}
|
||||||
p {{$t('battleMonstersDesc')}}
|
p {{$t('battleMonstersDesc')}}
|
||||||
@@ -62,15 +62,15 @@
|
|||||||
.col-12
|
.col-12
|
||||||
h2 {{$t('playersUseToImprove')}}
|
h2 {{$t('playersUseToImprove')}}
|
||||||
.row
|
.row
|
||||||
.col-4
|
.col-12.col-sm-4
|
||||||
img(src='~assets/images/home/health-fitness@3x.png', width='300px', height='300px')
|
img(src='~assets/images/home/health-fitness@3x.png', width='300px', height='300px')
|
||||||
strong {{$t('healthAndFitness')}}
|
strong {{$t('healthAndFitness')}}
|
||||||
p {{$t('healthAndFitnessDesc')}}
|
p {{$t('healthAndFitnessDesc')}}
|
||||||
.col-4
|
.col-12.col-sm-4
|
||||||
img(src='~assets/images/home/school-work@3x.png', width='300px', height='300px')
|
img(src='~assets/images/home/school-work@3x.png', width='300px', height='300px')
|
||||||
strong {{$t('schoolAndWork')}}
|
strong {{$t('schoolAndWork')}}
|
||||||
p {{$t('schoolAndWorkDesc')}}
|
p {{$t('schoolAndWorkDesc')}}
|
||||||
.col-4
|
.col-12.col-sm-4
|
||||||
img(src='~assets/images/home/much-more@3x.png', width='300px', height='300px')
|
img(src='~assets/images/home/much-more@3x.png', width='300px', height='300px')
|
||||||
strong {{$t('muchmuchMore')}}
|
strong {{$t('muchmuchMore')}}
|
||||||
p {{$t('muchmuchMoreDesc')}}
|
p {{$t('muchmuchMoreDesc')}}
|
||||||
@@ -82,9 +82,9 @@
|
|||||||
#level-up-anywhere.purple-3
|
#level-up-anywhere.purple-3
|
||||||
.container
|
.container
|
||||||
.row
|
.row
|
||||||
.col-6
|
.col-12.col-sm-6.col-md-6.col-lg-6
|
||||||
.iphones
|
.iphones
|
||||||
.col-6.text-column
|
.col-12.col-sm-6.col-md-6.col-lg-6.text-column
|
||||||
h2 {{ $t('levelUpAnywhere') }}
|
h2 {{ $t('levelUpAnywhere') }}
|
||||||
p {{ $t('levelUpAnywhereDesc') }}
|
p {{ $t('levelUpAnywhereDesc') }}
|
||||||
a.app.svg-icon(v-html='icons.googlePlay', href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica', target='_blank')
|
a.app.svg-icon(v-html='icons.googlePlay', href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica', target='_blank')
|
||||||
@@ -118,6 +118,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
#app {
|
||||||
|
overflow: hidden;
|
||||||
|
height: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
.form-text a {
|
.form-text a {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
@@ -240,6 +245,11 @@
|
|||||||
background: transparent;
|
background: transparent;
|
||||||
margin-right: .5em;
|
margin-right: .5em;
|
||||||
color: #bda8ff;
|
color: #bda8ff;
|
||||||
|
transition: .5s;
|
||||||
|
|
||||||
|
span {
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.social-button:hover {
|
.social-button:hover {
|
||||||
@@ -304,7 +314,7 @@
|
|||||||
color: $purple-400;
|
color: $purple-400;
|
||||||
border: solid 2px transparent;
|
border: solid 2px transparent;
|
||||||
transition-timing-function: ease;
|
transition-timing-function: ease;
|
||||||
transition: .5s;
|
transition: border .5s, color .5s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-valid {
|
.input-valid {
|
||||||
@@ -329,6 +339,7 @@
|
|||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
background-color: #2995cd;
|
background-color: #2995cd;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
transition: all .5s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sign-up:hover {
|
.sign-up:hover {
|
||||||
@@ -588,19 +599,19 @@
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
emailValid () {
|
emailValid () {
|
||||||
if (this.email.length === 0) return false;
|
if (this.email.length <= 3) return false;
|
||||||
return this.validateEmail(this.email);
|
return this.validateEmail(this.email);
|
||||||
},
|
},
|
||||||
emailInvalid () {
|
emailInvalid () {
|
||||||
if (this.email.length === 0) return false;
|
if (this.email.length <= 3) return false;
|
||||||
return !this.validateEmail(this.email);
|
return !this.validateEmail(this.email);
|
||||||
},
|
},
|
||||||
passwordConfirmValid () {
|
passwordConfirmValid () {
|
||||||
if (this.passwordConfirm.length === 0) return false;
|
if (this.passwordConfirm.length <= 3) return false;
|
||||||
return this.passwordConfirm === this.password;
|
return this.passwordConfirm === this.password;
|
||||||
},
|
},
|
||||||
passwordConfirmInvalid () {
|
passwordConfirmInvalid () {
|
||||||
if (this.passwordConfirm.length === 0) return false;
|
if (this.passwordConfirm.length <= 3) return false;
|
||||||
return this.passwordConfirm !== this.password;
|
return this.passwordConfirm !== this.password;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,18 +3,18 @@
|
|||||||
h1 {{ $t('presskit') }}
|
h1 {{ $t('presskit') }}
|
||||||
p {{ $t('presskitText', { pressEnquiryEmail : PRESS_ENQUIRY_EMAIL }) }}
|
p {{ $t('presskitText', { pressEnquiryEmail : PRESS_ENQUIRY_EMAIL }) }}
|
||||||
p
|
p
|
||||||
a.btn.btn-lg.btn-success(href='/presskit/presskit.zip') presskit.zip
|
a.btn.btn-lg.btn-success(href='~assets/images/presskit/presskit.zip') presskit.zip
|
||||||
|
|
||||||
div(v-for='(images, category) in imgs')
|
div(v-for='(images, category) in imgs')
|
||||||
h2 {{ $t('pk' + category) }}
|
h2 {{ $t('pk' + category) }}
|
||||||
div(v-if='Array.isArray(images)')
|
div(v-if='Array.isArray(images)')
|
||||||
div(v-for='img in images')
|
div(v-for='img in images')
|
||||||
img.img-rendering-auto.press-img(:src="`/presskit/${category}/${img}.png`")
|
img.img-rendering-auto.press-img(:src="`assets/images/presskit/${category}/${img}.png`")
|
||||||
div(v-else)
|
div(v-else)
|
||||||
div(v-for='(images, category) in images')
|
div(v-for='(images, category) in images')
|
||||||
h3 {{ $t('pk' + category) }}
|
h3 {{ $t('pk' + category) }}
|
||||||
div(v-for='img in images')
|
div(v-for='img in images')
|
||||||
img.img-rendering-auto.press-img(:src="`/presskit/#$category}/${cat}/${img}.png`")
|
img.img-rendering-auto.press-img(:src="~`assets/images/presskit/${category}/${img}.png`")
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -38,11 +38,15 @@
|
|||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-item .nav-link {
|
||||||
|
transition: color .5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
.login-button {
|
.login-button {
|
||||||
padding-right: 1em;
|
padding-right: 1em;
|
||||||
margin-top: 1.8em !important;
|
margin-top: 1.8em !important;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
background-color: #b288ff;
|
background-color: #9a62ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-button:hover {
|
.login-button:hover {
|
||||||
|
|||||||
@@ -114,7 +114,8 @@
|
|||||||
label(v-once) {{ $t('tags') }}
|
label(v-once) {{ $t('tags') }}
|
||||||
.category-wrap(@click="showTagsSelect = !showTagsSelect")
|
.category-wrap(@click="showTagsSelect = !showTagsSelect")
|
||||||
span.category-select(v-if='task.tags && task.tags.length === 0') {{$t('none')}}
|
span.category-select(v-if='task.tags && task.tags.length === 0') {{$t('none')}}
|
||||||
span.category-select(v-else) {{getTagsFor(task)[0]}}
|
span.category-select(v-else)
|
||||||
|
.category-label(v-for='tagName in getTagsFor(task)') {{tagName}}
|
||||||
.category-box(v-if="showTagsSelect")
|
.category-box(v-if="showTagsSelect")
|
||||||
.container
|
.container
|
||||||
.row
|
.row
|
||||||
|
|||||||
@@ -2,9 +2,11 @@ import { shouldDo } from 'common/script/cron';
|
|||||||
|
|
||||||
// Return all the tags belonging to an user task
|
// Return all the tags belonging to an user task
|
||||||
export function getTagsFor (store) {
|
export function getTagsFor (store) {
|
||||||
return (task) => store.state.user.data.tags
|
return (task) => {
|
||||||
.filter(tag => task.tags && task.tags.indexOf(tag.id) !== -1)
|
return store.state.user.data.tags
|
||||||
.map(tag => tag.name);
|
.filter(tag => task.tags && task.tags.indexOf(tag.id) !== -1)
|
||||||
|
.map(tag => tag.name);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTaskColorByValue (value) {
|
function getTaskColorByValue (value) {
|
||||||
|
|||||||