Redesign: Static Pages Wrapper (#9027)

* refactor(static-pages): wrapper

* refactor(statics): use router-view
This commit is contained in:
Sabe Jones
2017-09-15 13:59:15 -05:00
committed by GitHub
parent 5c5e117da0
commit 381f652c08
20 changed files with 1433 additions and 1653 deletions

View File

@@ -46,7 +46,7 @@ export default {
copyingMessage () {
this.text = this.copyingMessage.text;
let baseUrl = 'https://habitica.com';
this.notes = `[${this.copyingMessage.user}](${baseUrl}/home/#?memberId=${this.copyingMessage.uuid}) wrote in [${this.groupName}](${baseUrl}/#/options/groups/${this.groupId})`;
this.notes = `[${this.copyingMessage.user}](${baseUrl}/static/home/#?memberId=${this.copyingMessage.uuid}) wrote in [${this.groupName}](${baseUrl}/#/options/groups/${this.groupId})`;
},
},
methods: {

View File

@@ -59,7 +59,7 @@ export default {
},
});
localStorage.clear();
window.location.href = '/home';
window.location.href = '/static/home';
this.$root.$emit('hide::modal', 'reset');
},
},

View File

@@ -1,35 +1,11 @@
<template lang="pug">
div
static-header
.container-fluid.text-center
.row
.col-md-6.offset-3
h1 {{ $t('checkOutMobileApps') }}
.promo_habitica(style='border-radius:25px;margin:auto;margin-bottom:30px')
.container-fluid.text-center
.row
.col-md-6.offset-3
h1 {{ $t('checkOutMobileApps') }}
.promo_habitica(style='border-radius:25px;margin:auto;margin-bottom:30px')
a(href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1')
img(alt='Get it on Google Play', src='https://play.google.com/intl/en_us/badges/images/apps/en-play-badge.png', style='width:139px;height:45px;image-rendering:auto;vertical-align:top')
a(href='https://geo.itunes.apple.com/us/app/habitica/id994882113?mt=8', style='display:inline-block;overflow:hidden;background:url(http://linkmaker.itunes.apple.com/images/badges/en-us/badge_appstore-lrg.svg#svgView) no-repeat;background-size:100%;width:152px;height:45px;margin-left:20px;image-rendering:auto')
app-footer
a(href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1')
img(alt='Get it on Google Play', src='https://play.google.com/intl/en_us/badges/images/apps/en-play-badge.png', style='width:139px;height:45px;image-rendering:auto;vertical-align:top')
a(href='https://geo.itunes.apple.com/us/app/habitica/id994882113?mt=8', style='display:inline-block;overflow:hidden;background:url(http://linkmaker.itunes.apple.com/images/badges/en-us/badge_appstore-lrg.svg#svgView) no-repeat;background-size:100%;width:152px;height:45px;margin-left:20px;image-rendering:auto')
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.container-fluid {
margin-top: 56px;
margin-bottom: 24px;
}
</style>
<script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
export default {
components: {
AppFooter,
StaticHeader,
},
};
</script>

View File

@@ -1,43 +1,25 @@
<template lang="pug">
div
static-header
.container-fluid.text-center
.row
.col-md-6.offset-3
h1 {{ $t('clearBrowserData') }}
.container-fluid.text-center
.row
.col-md-6.offset-3
h1 {{ $t('clearBrowserData') }}
p(v-html="$t('localStorageTryFirst', localStorageTryFirst) ")
br
p.text-center
button.btn.btn-lg.btn-danger(@click='clearLocalStorage()',
popover-trigger='mouseover', :popover="$t('localStorageClearExplanation')")
| {{ $t('localStorageClear') }}
br
p(v-html="$t('localStorageTryNext', localStorageTryNext) ")
app-footer
p(v-html="$t('localStorageTryFirst', localStorageTryFirst) ")
br
p.text-center
button.btn.btn-lg.btn-danger(@click='clearLocalStorage()',
popover-trigger='mouseover', :popover="$t('localStorageClearExplanation')")
| {{ $t('localStorageClear') }}
br
p(v-html="$t('localStorageTryNext', localStorageTryNext) ")
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.container-fluid {
margin-top: 56px;
}
</style>
<script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
export default {
components: {
AppFooter,
StaticHeader,
},
data () {
return {
localStorageTryFirst: {
linkStart: '<a href="/#/options/settings/settings" target="_blank">',
linkStart: '<a href="/user/settings/site" target="_blank">',
linkEnd: '</a>',
},
localStorageTryNext: {

View File

@@ -1,322 +1,317 @@
<template lang="pug">
div
static-header
.container-fluid
h1 {{ $t('communityGuidelines') }}
hr
p {{ $t('lastUpdated') }} March 30, 2017
.container-fluid
h1 {{ $t('communityGuidelines') }}
hr
p {{ $t('lastUpdated') }} March 30, 2017
h2#welcome {{ $t('commGuideHeadingWelcome') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/intro.png')
.media-body.align-self-center
p {{ $t('commGuidePara001') }}
p {{ $t('commGuidePara002') }}
p {{ $t('commGuidePara003') }}
p {{ $t('commGuidePara004') }}
h2#welcome {{ $t('commGuideHeadingWelcome') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/intro.png')
.media-body.align-self-center
p {{ $t('commGuidePara001') }}
p {{ $t('commGuidePara002') }}
p {{ $t('commGuidePara003') }}
p {{ $t('commGuidePara004') }}
h2#being-habitican {{ $t('commGuideHeadingBeing') }}
p {{ $t('commGuidePara005') }}
.media
.media-body.align-self-center
ul
li(v-html="$t('commGuideList01A')")
li(v-html="$t('commGuideList01B')")
li(v-html="$t('commGuideList01C')")
li(v-html="$t('commGuideList01D')")
img.align-self-center(src='~assets/images/community-guidelines/beingHabitican.png')
h2#being-habitican {{ $t('commGuideHeadingBeing') }}
p {{ $t('commGuidePara005') }}
.media
.media-body.align-self-center
ul
li(v-html="$t('commGuideList01A')")
li(v-html="$t('commGuideList01B')")
li(v-html="$t('commGuideList01C')")
li(v-html="$t('commGuideList01D')")
img.align-self-center(src='~assets/images/community-guidelines/beingHabitican.png')
h2#meet-the-mods {{ $t('commGuideHeadingMeet') }}
p {{ $t('commGuidePara006') }}
p.strong {{ $t('commGuidePara007') }}
p.strong {{ $t('commGuidePara008') }}
p.strong {{ $t('commGuidePara009') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/staff.png')
.media-body.align-self-center
ul.list-unstyled
li.strong {{ $t('commGuideAKA', {habitName: 'Beffymaroo', realName: 'Beth'}) }}
li.strong {{ $t('commGuideAKA', {habitName: 'Viirus', realName: 'Phillip'}) }}
li.strong {{ $t('commGuideAKA', {habitName: 'redphoenix', realName: 'Vicky'}) }} ({{ $t('commGuideOnTrello', {trelloName: 'caffeinatedvee'}) }}, {{ $t('commGuideOnGitHub', {gitHubName: 'veeeeeee'}) }})
li.strong {{ $t('commGuideAKA', {habitName: 'Lemoness', realName: 'Leslie'}) }} ({{ $t('commGuideOnTrello', {trelloName: 'lemonesstree'}) }})
li.strong {{ $t('commGuideAKA', {habitName: 'SabreCat', realName: 'Sabe'}) }}
li.strong {{ $t('commGuideAKA', {habitName: 'paglias', realName: 'Matteo'}) }}
li.strong {{ $t('commGuideAKA', {habitName: 'TheHollidayInn', realName: 'Keith'}) }}
p {{ $t('commGuidePara010') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/moderators.png')
.media-body.align-self-center
p.strong {{ $t('commGuidePara011') }}
ul.list-unstyled
li.strong Bailey (It's Bailey {{ $t('commGuidePara011a') }})
li.strong Ryan (deilann {{ $t('commGuidePara011b') }})
li.strong Alys (LadyAlys {{ $t('commGuidePara011c') }})
li.strong Cantras
li.strong Blade ({{ $t('commGuideOnGitHub', {gitHubName: 'crookedneighbor'}) }})
li.strong Daniel the Bard
li.strong shanaqui
li.strong Dewines
li.strong Megan
li.strong Breadstrings
p(v-html="$t('commGuidePara012', { hrefCommunityManagerEmail })")
p {{ $t('commGuidePara013') }}
p {{ $t('commGuidePara014') }}&nbsp;
em Slappybag, litenull, Shaner, Bobbyroberts99, wc8
h2#meet-the-mods {{ $t('commGuideHeadingMeet') }}
p {{ $t('commGuidePara006') }}
p.strong {{ $t('commGuidePara007') }}
p.strong {{ $t('commGuidePara008') }}
p.strong {{ $t('commGuidePara009') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/staff.png')
.media-body.align-self-center
ul.list-unstyled
li.strong {{ $t('commGuideAKA', {habitName: 'Beffymaroo', realName: 'Beth'}) }}
li.strong {{ $t('commGuideAKA', {habitName: 'Viirus', realName: 'Phillip'}) }}
li.strong {{ $t('commGuideAKA', {habitName: 'redphoenix', realName: 'Vicky'}) }} ({{ $t('commGuideOnTrello', {trelloName: 'caffeinatedvee'}) }}, {{ $t('commGuideOnGitHub', {gitHubName: 'veeeeeee'}) }})
li.strong {{ $t('commGuideAKA', {habitName: 'Lemoness', realName: 'Leslie'}) }} ({{ $t('commGuideOnTrello', {trelloName: 'lemonesstree'}) }})
li.strong {{ $t('commGuideAKA', {habitName: 'SabreCat', realName: 'Sabe'}) }}
li.strong {{ $t('commGuideAKA', {habitName: 'paglias', realName: 'Matteo'}) }}
li.strong {{ $t('commGuideAKA', {habitName: 'TheHollidayInn', realName: 'Keith'}) }}
p {{ $t('commGuidePara010') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/moderators.png')
.media-body.align-self-center
p.strong {{ $t('commGuidePara011') }}
ul.list-unstyled
li.strong Bailey (It's Bailey {{ $t('commGuidePara011a') }})
li.strong Ryan (deilann {{ $t('commGuidePara011b') }})
li.strong Alys (LadyAlys {{ $t('commGuidePara011c') }})
li.strong Cantras
li.strong Blade ({{ $t('commGuideOnGitHub', {gitHubName: 'crookedneighbor'}) }})
li.strong Daniel the Bard
li.strong shanaqui
li.strong Dewines
li.strong Megan
li.strong Breadstrings
p(v-html="$t('commGuidePara012', { hrefCommunityManagerEmail })")
p {{ $t('commGuidePara013') }}
p {{ $t('commGuidePara014') }}&nbsp;
em Slappybag, litenull, Shaner, Bobbyroberts99, wc8
h2#public-spaces {{ $t('commGuideHeadingPublicSpaces') }}
.media
.media-body.align-self-center
p {{ $t('commGuidePara015') }}
p {{ $t('commGuidePara016') }}
p(v-html="$t('commGuidePara017')")
img.align-self-center(src='~assets/images/community-guidelines/publicSpaces.png')
ul
li(v-html="$t('commGuideList02A')")
li(v-html="$t('commGuideList02B')")
li(v-html="$t('commGuideList02C')")
li(v-html="$t('commGuideList02D')")
li(v-html="$t('commGuideList02E')")
li(v-html="$t('commGuideList02F')")
li(v-html="$t('commGuideList02G')")
li(v-html="$t('commGuideList02H', { hrefCommunityManagerEmail })")
li(v-html="$t('commGuideList02I')")
li(v-html="$t('commGuideList02J')")
li(v-html="$t('commGuideList02K', { hrefCommunityManagerEmail })")
p(v-html="$t('commGuidePara019')")
p(v-html="$t('commGuidePara020')")
p(v-html="$t('commGuidePara020A', { hrefCommunityManagerEmail })")
p(v-html="$t('commGuidePara021')")
h2#public-spaces {{ $t('commGuideHeadingPublicSpaces') }}
.media
.media-body.align-self-center
p {{ $t('commGuidePara015') }}
p {{ $t('commGuidePara016') }}
p(v-html="$t('commGuidePara017')")
img.align-self-center(src='~assets/images/community-guidelines/publicSpaces.png')
ul
li(v-html="$t('commGuideList02A')")
li(v-html="$t('commGuideList02B')")
li(v-html="$t('commGuideList02C')")
li(v-html="$t('commGuideList02D')")
li(v-html="$t('commGuideList02E')")
li(v-html="$t('commGuideList02F')")
li(v-html="$t('commGuideList02G')")
li(v-html="$t('commGuideList02H', { hrefCommunityManagerEmail })")
li(v-html="$t('commGuideList02I')")
li(v-html="$t('commGuideList02J')")
li(v-html="$t('commGuideList02K', { hrefCommunityManagerEmail })")
p(v-html="$t('commGuidePara019')")
p(v-html="$t('commGuidePara020')")
p(v-html="$t('commGuidePara020A', { hrefCommunityManagerEmail })")
p(v-html="$t('commGuidePara021')")
h3#tavern {{ $t('commGuideHeadingTavern') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/tavern.png')
.media-body.align-self-center
p {{ $t('commGuidePara022') }}
p.strong {{ $t('commGuidePara023') }}
p(v-html="$t('commGuidePara024')")
p(v-html="$t('commGuidePara027')")
h3#tavern {{ $t('commGuideHeadingTavern') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/tavern.png')
.media-body.align-self-center
p {{ $t('commGuidePara022') }}
p.strong {{ $t('commGuidePara023') }}
p(v-html="$t('commGuidePara024')")
p(v-html="$t('commGuidePara027')")
h3#guilds {{ $t('commGuideHeadingPublicGuilds') }}
.media
.media-body.align-self-center
p(v-html="$t('commGuidePara029')")
p(v-html="$t('commGuidePara031')")
img.align-self-center(src='~assets/images/community-guidelines/publicGuilds.png')
p(v-html="$t('commGuidePara033', { hrefCommunityManagerEmail })")
p(v-html="$t('commGuidePara035')")
p.strong {{ $t('commGuidePara037') }}
h3#guilds {{ $t('commGuideHeadingPublicGuilds') }}
.media
.media-body.align-self-center
p(v-html="$t('commGuidePara029')")
p(v-html="$t('commGuidePara031')")
img.align-self-center(src='~assets/images/community-guidelines/publicGuilds.png')
p(v-html="$t('commGuidePara033', { hrefCommunityManagerEmail })")
p(v-html="$t('commGuidePara035')")
p.strong {{ $t('commGuidePara037') }}
h3#back-corner {{ $t('commGuideHeadingBackCorner') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/backCorner.png')
.media-body.align-self-center
p(v-html="$t('commGuidePara038')")
p(v-html="$t('commGuidePara039')")
h3#back-corner {{ $t('commGuideHeadingBackCorner') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/backCorner.png')
.media-body.align-self-center
p(v-html="$t('commGuidePara038')")
p(v-html="$t('commGuidePara039')")
h3#trello {{ $t('commGuideHeadingTrello') }}
.media
.media-body.align-self-center
p(v-html="$t('commGuidePara040')")
p.strong {{ $t('commGuidePara041') }}
ul
li(v-html="$t('commGuideList03A')")
li(v-html="$t('commGuideList03B')")
li(v-html="$t('commGuideList03C')")
li(v-html="$t('commGuideList03D')")
img.align-self-center(src='~assets/images/community-guidelines/trello.png')
p(v-html="$t('commGuidePara042')")
h3#trello {{ $t('commGuideHeadingTrello') }}
.media
.media-body.align-self-center
p(v-html="$t('commGuidePara040')")
p.strong {{ $t('commGuidePara041') }}
ul
li(v-html="$t('commGuideList03A')")
li(v-html="$t('commGuideList03B')")
li(v-html="$t('commGuideList03C')")
li(v-html="$t('commGuideList03D')")
img.align-self-center(src='~assets/images/community-guidelines/trello.png')
p(v-html="$t('commGuidePara042')")
h3#github {{ $t('commGuideHeadingGitHub') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/github.gif')
.media-body.align-self-center
p(v-html="$t('commGuidePara043')")
p.strong(v-html="$t('commGuidePara044')")
ul.list-2col.list-unstyled
li @alys
li @crookedneighbor (Blade)
li @lemoness
li @paglias
li @SabreCat
li @TheHollidayInn
li @veeeeeee (redphoenix)
li @vIiRuS
h3#github {{ $t('commGuideHeadingGitHub') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/github.gif')
.media-body.align-self-center
p(v-html="$t('commGuidePara043')")
p.strong(v-html="$t('commGuidePara044')")
ul.list-2col.list-unstyled
li @alys
li @crookedneighbor (Blade)
li @lemoness
li @paglias
li @SabreCat
li @TheHollidayInn
li @veeeeeee (redphoenix)
li @vIiRuS
h3#wiki {{ $t('commGuideHeadingWiki') }}
.media
.media-body.align-self-center
p(v-html="$t('commGuidePara021')") {{ $t('commGuidePara045') }}
p {{ $t('commGuidePara046') }}
p.strong {{ $t('commGuidePara047') }}
p {{ $t('commGuidePara048') }}
img.align-self-center(src='~assets/images/community-guidelines/wiki.png')
ul
li {{ $t('commGuideList04A') }}
li {{ $t('commGuideList04B') }}
li {{ $t('commGuideList04C') }}
li(v-html="$t('commGuidePara020A', { hrefCommunityManagerEmail })")
li {{ $t('commGuideList04E') }}
li(v-html="$t('commGuideList04F')")
li {{ $t('commGuideList04G') }}
li {{ $t('commGuideList04H') }}
p {{ $t('commGuidePara049') }}
ul.list-unstyled
li LadyAlys (Alys)
li Sonnet73
li Taldin
p {{ $t('commGuidePara049A') }}
ul.list-unstyled
li Beffymaroo
li Cantras
li Meganstrickland (Megan)
p {{ $t('commGuidePara018') }}&nbsp;
em Bobbyroberts99 (founder and bureaucrat), wc8 (bureaucrat), Lefnire (bureaucrat), JiggerD, LadyKatFrog, Breadstrings (bureaucrat), Deilann
h3#wiki {{ $t('commGuideHeadingWiki') }}
.media
.media-body.align-self-center
p(v-html="$t('commGuidePara021')") {{ $t('commGuidePara045') }}
p {{ $t('commGuidePara046') }}
p.strong {{ $t('commGuidePara047') }}
p {{ $t('commGuidePara048') }}
img.align-self-center(src='~assets/images/community-guidelines/wiki.png')
ul
li {{ $t('commGuideList04A') }}
li {{ $t('commGuideList04B') }}
li {{ $t('commGuideList04C') }}
li(v-html="$t('commGuidePara020A', { hrefCommunityManagerEmail })")
li {{ $t('commGuideList04E') }}
li(v-html="$t('commGuideList04F')")
li {{ $t('commGuideList04G') }}
li {{ $t('commGuideList04H') }}
p {{ $t('commGuidePara049') }}
ul.list-unstyled
li LadyAlys (Alys)
li Sonnet73
li Taldin
p {{ $t('commGuidePara049A') }}
ul.list-unstyled
li Beffymaroo
li Cantras
li Meganstrickland (Megan)
p {{ $t('commGuidePara018') }}&nbsp;
em Bobbyroberts99 (founder and bureaucrat), wc8 (bureaucrat), Lefnire (bureaucrat), JiggerD, LadyKatFrog, Breadstrings (bureaucrat), Deilann
h2#infractions-consequences-restoration {{ $t('commGuideHeadingInfractionsEtc') }}
h3#infractions {{ $t('commGuideHeadingInfractions') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/infractions.png')
.media-body.align-self-center
p {{ $t('commGuidePara050') }}
p(v-html="$t('commGuidePara051')")
h4 {{ $t('commGuideHeadingSevereInfractions') }}
p {{ $t('commGuidePara052') }}
p {{ $t('commGuidePara053') }}
ul
li {{ $t('commGuideList05A') }}
li {{ $t('commGuideList05B') }}
li {{ $t('commGuideList05C') }}
li {{ $t('commGuideList05D') }}
li {{ $t('commGuideList05E') }}
li {{ $t('commGuideList05F') }}
h4 {{ $t('commGuideHeadingModerateInfractions') }}
p {{ $t('commGuidePara054') }}
p {{ $t('commGuidePara055') }}
ul
li(v-html="$t('commGuidePara020A', { hrefCommunityManagerEmail })")
li {{ $t('commGuideList06B') }}
li {{ $t('commGuideList06C') }}
li {{ $t('commGuideList06D') }}
h4 {{ $t('commGuideHeadingMinorInfractions') }}
p {{ $t('commGuidePara056') }}
p {{ $t('commGuidePara057') }}
ul
li {{ $t('commGuideList07A') }}
li {{ $t('commGuideList07B') }}
h2#infractions-consequences-restoration {{ $t('commGuideHeadingInfractionsEtc') }}
h3#infractions {{ $t('commGuideHeadingInfractions') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/infractions.png')
.media-body.align-self-center
p {{ $t('commGuidePara050') }}
p(v-html="$t('commGuidePara051')")
h4 {{ $t('commGuideHeadingSevereInfractions') }}
p {{ $t('commGuidePara052') }}
p {{ $t('commGuidePara053') }}
ul
li {{ $t('commGuideList05A') }}
li {{ $t('commGuideList05B') }}
li {{ $t('commGuideList05C') }}
li {{ $t('commGuideList05D') }}
li {{ $t('commGuideList05E') }}
li {{ $t('commGuideList05F') }}
h4 {{ $t('commGuideHeadingModerateInfractions') }}
p {{ $t('commGuidePara054') }}
p {{ $t('commGuidePara055') }}
ul
li(v-html="$t('commGuidePara020A', { hrefCommunityManagerEmail })")
li {{ $t('commGuideList06B') }}
li {{ $t('commGuideList06C') }}
li {{ $t('commGuideList06D') }}
h4 {{ $t('commGuideHeadingMinorInfractions') }}
p {{ $t('commGuidePara056') }}
p {{ $t('commGuidePara057') }}
ul
li {{ $t('commGuideList07A') }}
li {{ $t('commGuideList07B') }}
h3#consequences {{ $t('commGuideHeadingConsequences') }}
.media
.media-body.align-self-center
p {{ $t('commGuidePara058') }}
p(v-html="$t('commGuidePara059')")
p.strong {{ $t('commGuidePara060') }}
ul
li {{ $t('commGuideList08A') }}
li {{ $t('commGuideList08B') }}
li {{ $t('commGuideList08C') }}
img.align-self-center(src='~assets/images/community-guidelines/consequences.png')
p {{ $t('commGuidePara060A') }}
p(v-html="$t('commGuidePara060B', { hrefCommunityManagerEmail })")
h4 {{ $t('commGuideHeadingSevereConsequences') }}
ul
li {{ $t('commGuideList09A') }}
li {{ $t('commGuideList09B') }}
li {{ $t('commGuideList09C') }}
h4 {{ $t('commGuideHeadingModerateConsequences') }}
ul
li {{ $t('commGuideList10A') }}
ul
li {{ $t('commGuideList10A1') }}
li {{ $t('commGuideList10B') }}
li {{ $t('commGuideList10C') }}
li {{ $t('commGuideList10D') }}
li {{ $t('commGuideList10E') }}
li {{ $t('commGuideList10F') }}
h4 {{ $t('commGuideHeadingMinorConsequences') }}
ul
li {{ $t('commGuideList11A') }}
li {{ $t('commGuideList11B') }}
li {{ $t('commGuideList11C') }}
li {{ $t('commGuideList11D') }}
li {{ $t('commGuideList11E') }}
h3#consequences {{ $t('commGuideHeadingConsequences') }}
.media
.media-body.align-self-center
p {{ $t('commGuidePara058') }}
p(v-html="$t('commGuidePara059')")
p.strong {{ $t('commGuidePara060') }}
ul
li {{ $t('commGuideList08A') }}
li {{ $t('commGuideList08B') }}
li {{ $t('commGuideList08C') }}
img.align-self-center(src='~assets/images/community-guidelines/consequences.png')
p {{ $t('commGuidePara060A') }}
p(v-html="$t('commGuidePara060B', { hrefCommunityManagerEmail })")
h4 {{ $t('commGuideHeadingSevereConsequences') }}
ul
li {{ $t('commGuideList09A') }}
li {{ $t('commGuideList09B') }}
li {{ $t('commGuideList09C') }}
h4 {{ $t('commGuideHeadingModerateConsequences') }}
ul
li {{ $t('commGuideList10A') }}
ul
li {{ $t('commGuideList10A1') }}
li {{ $t('commGuideList10B') }}
li {{ $t('commGuideList10C') }}
li {{ $t('commGuideList10D') }}
li {{ $t('commGuideList10E') }}
li {{ $t('commGuideList10F') }}
h4 {{ $t('commGuideHeadingMinorConsequences') }}
ul
li {{ $t('commGuideList11A') }}
li {{ $t('commGuideList11B') }}
li {{ $t('commGuideList11C') }}
li {{ $t('commGuideList11D') }}
li {{ $t('commGuideList11E') }}
h3#restoration {{ $t('commGuideHeadingRestoration') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/restoration.png')
.media-body.align-self-center
p(v-html="$t('commGuidePara061')")
p(v-html="$t('commGuidePara062')")
p(v-html="$t('commGuidePara063')")
h3#restoration {{ $t('commGuideHeadingRestoration') }}
.media
img.align-self-center(src='~assets/images/community-guidelines/restoration.png')
.media-body.align-self-center
p(v-html="$t('commGuidePara061')")
p(v-html="$t('commGuidePara062')")
p(v-html="$t('commGuidePara063')")
h2#contributing {{ $t('commGuideHeadingContributing') }}
.media
.media-body.align-self-center
p {{ $t('commGuidePara064') }}
ol
li {{ $t('commGuideList12A') }}
li {{ $t('commGuideList12B') }}
li {{ $t('commGuideList12C') }}
li {{ $t('commGuideList12D') }}
li {{ $t('commGuideList12E') }}
li {{ $t('commGuideList12F') }}
li {{ $t('commGuideList12G') }}
img.align-self-center(src='~assets/images/community-guidelines/contributing.png')
p {{ $t('commGuidePara065') }}
p {{ $t('commGuidePara066') }}
ul
li(v-html="$t('commGuideList13A')")
li(v-html="$t('commGuideList13B')")
li(v-html="$t('commGuideList13C')")
li(v-html="$t('commGuideList13D')")
h2#contributing {{ $t('commGuideHeadingContributing') }}
.media
.media-body.align-self-center
p {{ $t('commGuidePara064') }}
ol
li {{ $t('commGuideList12A') }}
li {{ $t('commGuideList12B') }}
li {{ $t('commGuideList12C') }}
li {{ $t('commGuideList12D') }}
li {{ $t('commGuideList12E') }}
li {{ $t('commGuideList12F') }}
li {{ $t('commGuideList12G') }}
img.align-self-center(src='~assets/images/community-guidelines/contributing.png')
p {{ $t('commGuidePara065') }}
p {{ $t('commGuidePara066') }}
ul
li(v-html="$t('commGuideList13A')")
li(v-html="$t('commGuideList13B')")
li(v-html="$t('commGuideList13C')")
li(v-html="$t('commGuideList13D')")
h2#final {{ $t('commGuideHeadingFinal') }}
p(v-html="$t('commGuidePara067', { hrefCommunityManagerEmail })")
p {{ $t('commGuidePara068') }}
h2#final {{ $t('commGuideHeadingFinal') }}
p(v-html="$t('commGuidePara067', { hrefCommunityManagerEmail })")
p {{ $t('commGuidePara068') }}
h2#links {{ $t('commGuideHeadingLinks') }}
ul
li
a(href='https://habitica.com/#/options/groups/guilds/5481ccf3-5d2d-48a9-a871-70a7380cee5a' target='_blank') {{ $t('commGuideLink01') }}
| :&nbsp;{{ $t('commGuideLink01description') }}
li
a(href='https://habitica.com/#/options/groups/guilds/426c2c1a-eed0-4997-9b73-d30fc1397688' target='_blank') {{ $t('commGuideLink02') }}
| :&nbsp;{{ $t('commGuideLink02description') }}
li
span(v-html="$t('commGuideLink03')")
| :&nbsp;{{ $t('commGuideLink03description') }}
li
a(href='https://github.com/HabitRPG/habitrpg' target='_blank') {{ $t('commGuideLink04') }}
| :&nbsp;{{ $t('commGuideLink04description') }}
li
a(href='https://trello.com/b/EpoYEYod/' target='_blank') {{ $t('commGuideLink05') }}
| :&nbsp;{{ $t('commGuideLink05description') }}
li
a(href='https://trello.com/b/mXK3Eavg/' target='_blank') {{ $t('commGuideLink06') }}
| :&nbsp;{{ $t('commGuideLink06description') }}
li
a(href='https://trello.com/b/vwuE9fbO/' target='_blank') {{ $t('commGuideLink07') }}
| :&nbsp;{{ $t('commGuideLink07description') }}
li
a(href='https://trello.com/b/nnv4QIRX/' target='_blank') {{ $t('commGuideLink08') }}
| :&nbsp;{{ $t('commGuideLink08description') }}
p.strong {{ $t('commGuidePara069') }}
ul.list-2col.list-unstyled
li Breadstrings
li Draayder
li Kiwibot
li Leephon
li Lemoness
li Luciferian
li Revcleo
li Shaner
li Starsystemic
li UncommonCriminal
app-footer
h2#links {{ $t('commGuideHeadingLinks') }}
ul
li
a(href='https://habitica.com/#/options/groups/guilds/5481ccf3-5d2d-48a9-a871-70a7380cee5a' target='_blank') {{ $t('commGuideLink01') }}
| :&nbsp;{{ $t('commGuideLink01description') }}
li
a(href='https://habitica.com/#/options/groups/guilds/426c2c1a-eed0-4997-9b73-d30fc1397688' target='_blank') {{ $t('commGuideLink02') }}
| :&nbsp;{{ $t('commGuideLink02description') }}
li
span(v-html="$t('commGuideLink03')")
| :&nbsp;{{ $t('commGuideLink03description') }}
li
a(href='https://github.com/HabitRPG/habitrpg' target='_blank') {{ $t('commGuideLink04') }}
| :&nbsp;{{ $t('commGuideLink04description') }}
li
a(href='https://trello.com/b/EpoYEYod/' target='_blank') {{ $t('commGuideLink05') }}
| :&nbsp;{{ $t('commGuideLink05description') }}
li
a(href='https://trello.com/b/mXK3Eavg/' target='_blank') {{ $t('commGuideLink06') }}
| :&nbsp;{{ $t('commGuideLink06description') }}
li
a(href='https://trello.com/b/vwuE9fbO/' target='_blank') {{ $t('commGuideLink07') }}
| :&nbsp;{{ $t('commGuideLink07description') }}
li
a(href='https://trello.com/b/nnv4QIRX/' target='_blank') {{ $t('commGuideLink08') }}
| :&nbsp;{{ $t('commGuideLink08description') }}
p.strong {{ $t('commGuidePara069') }}
ul.list-2col.list-unstyled
li Breadstrings
li Draayder
li Kiwibot
li Leephon
li Lemoness
li Luciferian
li Revcleo
li Shaner
li Starsystemic
li UncommonCriminal
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.list-2col {
width: 50%;
columns: 2;
@@ -326,17 +321,10 @@
</style>
<script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
// @TODO: EMAILS.COMMUNITY_MANAGER_EMAIL
const COMMUNITY_MANAGER_EMAIL = 'admin@habitica.com';
export default {
components: {
AppFooter,
StaticHeader,
},
data () {
return {
hrefCommunityManagerEmail: `<a href='mailto: ${COMMUNITY_MANAGER_EMAIL}'>${COMMUNITY_MANAGER_EMAIL}</a>`,

View File

@@ -1,64 +1,41 @@
<template lang="pug">
div
static-header
.container-fluid
.row
.col-md-6.offset-3
h1 {{ $t('contactUs') }}
.container-fluid
.row
.col-md-6.offset-3
h1 {{ $t('contactUs') }}
p
| {{ $t('reportAccountProblems') }}
| &colon;&nbsp;
a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com
br
| {{ $t('reportBug') }}
| &colon;&nbsp;
a(target='_blank', href='/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac') Report a Bug guild
| &nbsp;or&nbsp;
a(target='_blank', href='https://github.com/HabitRPG/habitica/issues?q=is%3Aopen') GitHub
br
| {{ $t('reportCommunityIssues') }}
| &colon;&nbsp;
a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com
br
| {{ $t('subscriptionPaymentIssues') }}
| &colon;&nbsp;
a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com
br
| {{ $t('generalQuestionsSite') }}
| &colon;&nbsp;
a(target='_blank', href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a') Habitica Help guild
br
| {{ $t('businessInquiries') }}
| &colon;&nbsp;
a(href='mailto:vicky@habitica.com') vicky&commat;habitica&period;com
br
| {{ $t('merchandiseInquiries') }}
| &colon;&nbsp;
a(href='mailto:store@habitica.com') store&commat;habitica&period;com
br
| {{ $t('marketingInquiries') }}
| &colon;&nbsp;
a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com
app-footer
p
| {{ $t('reportAccountProblems') }}
| &colon;&nbsp;
a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com
br
| {{ $t('reportBug') }}
| &colon;&nbsp;
a(target='_blank', href='/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac') Report a Bug guild
| &nbsp;or&nbsp;
a(target='_blank', href='https://github.com/HabitRPG/habitica/issues?q=is%3Aopen') GitHub
br
| {{ $t('reportCommunityIssues') }}
| &colon;&nbsp;
a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com
br
| {{ $t('subscriptionPaymentIssues') }}
| &colon;&nbsp;
a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com
br
| {{ $t('generalQuestionsSite') }}
| &colon;&nbsp;
a(target='_blank', href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a') Habitica Help guild
br
| {{ $t('businessInquiries') }}
| &colon;&nbsp;
a(href='mailto:vicky@habitica.com') vicky&commat;habitica&period;com
br
| {{ $t('merchandiseInquiries') }}
| &colon;&nbsp;
a(href='mailto:store@habitica.com') store&commat;habitica&period;com
br
| {{ $t('marketingInquiries') }}
| &colon;&nbsp;
a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.container-fluid {
margin-top: 56px;
}
</style>
<script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
export default {
components: {
AppFooter,
StaticHeader,
},
};
</script>

View File

@@ -1,25 +1,16 @@
<template lang="pug">
div
static-header
.container-fluid
.row
.col-md-6.offset-3
h1 {{ $t('frequentlyAskedQuestions') }}
.faq-question(v-for='(heading, index) in headings')
h2.accordion(@click='setActivePage(heading)') {{ $t(`faqQuestion${index}`) }}
div(v-if='pageState[heading]', v-markdown="$t('webFaqAnswer' + index, replacements)")
hr
p(v-markdown="$t('webFaqStillNeedHelp')")
app-footer
.container-fluid
.row
.col-md-6.offset-3
h1 {{ $t('frequentlyAskedQuestions') }}
.faq-question(v-for='(heading, index) in headings')
h2.accordion(@click='setActivePage(heading)') {{ $t(`faqQuestion${index}`) }}
div(v-if='pageState[heading]', v-markdown="$t('webFaqAnswer' + index, replacements)")
hr
p(v-markdown="$t('webFaqStillNeedHelp')")
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.container-fluid {
margin-top: 56px;
}
.faq-question {
margin-bottom: 1em;
}
@@ -28,15 +19,9 @@
<script>
// @TODO: env.EMAILS.TECH_ASSISTANCE_EMAIL
const TECH_ASSISTANCE_EMAIL = 'admin@habitica.com';
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
import markdownDirective from 'client/directives/markdown';
export default {
components: {
AppFooter,
StaticHeader,
},
directives: {
markdown: markdownDirective,
},

View File

@@ -1,87 +1,82 @@
<template lang="pug">
div
static-header
.container-fluid.text-center
.row
.col-md-12
h1 {{ $t('marketing1Header') }}
.row
.col-md-6
img(src='~assets/images/marketing/screenshot.png')
h2 {{ $t('marketing1Lead1Title') }}
p {{ $t('marketing1Lead1') }}
.col-md-6
img(src='~assets/images/marketing/gear.png')
h2 {{ $t('marketing1Lead2Title') }}
p {{ $t('marketing1Lead2') }}
img(src='~assets/images/marketing/drops.png', style='max-height: 200px;')
h2 {{ $t('marketing1Lead3Title') }}
p {{ $t('marketing1Lead3') }}
hr
.row
.col-md-12
h1 {{ $t('marketing2Header') }}
.row
.col-md-6
img(src='~assets/images/marketing/guild.png')
h2 {{ $t('marketing2Lead1Title') }}
p {{ $t('marketing2Lead1') }}
img(src='~assets/images/marketing/vice3.png')
h2 {{ $t('marketing2Lead2Title') }}
p(v-markdown='$t("marketing2Lead2")')
.col-md-6
img(src='~assets/images/marketing/challenge.png')
h2 {{ $t('marketing2Lead3Title') }}
p {{ $t('marketing2Lead3') }}
hr
.row
.col-md-12
h1 {{ $t('marketing3Header') }}
.row
.col-md-6
img(src='~assets/images/marketing/android_iphone.png')
h2 {{ $t('footerMobile') }}
p(v-markdown='$t("marketing3Lead1")')
.col-md-6
img(src='~assets/images/marketing/integration.png')
h2 {{ $t('marketing3Lead2Title') }}
p(v-markdown='$t("marketing3Lead2")')
hr
.row
.col-md-12
h1 {{ $t('marketing4Header') }}
.row
.col-md-6
.media
img(src='~assets/images/marketing/education.png')
.media-body
h2 {{ $t('marketing4Lead1Title') }}
p {{ $t('marketing4Lead1') }}
.col-md-6
.media
img(src='~assets/images/marketing/wellness.png')
.media-body
h2 {{ $t('marketing4Lead2Title') }}
p {{ $t('marketing4Lead2') }}
.row
.col-md-6.offset-md-3
h2 {{ $t('marketing4Lead3Title') }}
img(src='~assets/images/marketing/lefnire.png')
p.span
span {{ $t('marketing4Lead3-1') }}
button.btn.btn-primary(@click='playButtonClick()') {{ $t('playButton') }}
p.span
span {{ $t('marketing4Lead3-2') }}
a.btn.btn-primary(href='/static/plans',target='_blank') {{ $t('contactUs') }}
p.span
span {{ $t('marketing4Lead3-3') }}
a.btn.btn-primary(href='/static/videos') {{ $t('watchVideos') }}
app-footer
.container-fluid.text-center
.row
.col-md-12
h1 {{ $t('marketing1Header') }}
.row
.col-md-6
img(src='~assets/images/marketing/screenshot.png')
h2 {{ $t('marketing1Lead1Title') }}
p {{ $t('marketing1Lead1') }}
.col-md-6
img(src='~assets/images/marketing/gear.png')
h2 {{ $t('marketing1Lead2Title') }}
p {{ $t('marketing1Lead2') }}
img(src='~assets/images/marketing/drops.png', style='max-height: 200px;')
h2 {{ $t('marketing1Lead3Title') }}
p {{ $t('marketing1Lead3') }}
hr
.row
.col-md-12
h1 {{ $t('marketing2Header') }}
.row
.col-md-6
img(src='~assets/images/marketing/guild.png')
h2 {{ $t('marketing2Lead1Title') }}
p {{ $t('marketing2Lead1') }}
img(src='~assets/images/marketing/vice3.png')
h2 {{ $t('marketing2Lead2Title') }}
p(v-markdown='$t("marketing2Lead2")')
.col-md-6
img(src='~assets/images/marketing/challenge.png')
h2 {{ $t('marketing2Lead3Title') }}
p {{ $t('marketing2Lead3') }}
hr
.row
.col-md-12
h1 {{ $t('marketing3Header') }}
.row
.col-md-6
img(src='~assets/images/marketing/android_iphone.png')
h2 {{ $t('footerMobile') }}
p(v-markdown='$t("marketing3Lead1")')
.col-md-6
img(src='~assets/images/marketing/integration.png')
h2 {{ $t('marketing3Lead2Title') }}
p(v-markdown='$t("marketing3Lead2")')
hr
.row
.col-md-12
h1 {{ $t('marketing4Header') }}
.row
.col-md-6
.media
img(src='~assets/images/marketing/education.png')
.media-body
h2 {{ $t('marketing4Lead1Title') }}
p {{ $t('marketing4Lead1') }}
.col-md-6
.media
img(src='~assets/images/marketing/wellness.png')
.media-body
h2 {{ $t('marketing4Lead2Title') }}
p {{ $t('marketing4Lead2') }}
.row
.col-md-6.offset-md-3
h2 {{ $t('marketing4Lead3Title') }}
img(src='~assets/images/marketing/lefnire.png')
p.span
span {{ $t('marketing4Lead3-1') }}
button.btn.btn-primary(@click='playButtonClick()') {{ $t('playButton') }}
p.span
span {{ $t('marketing4Lead3-2') }}
a.btn.btn-primary(href='/static/plans',target='_blank') {{ $t('contactUs') }}
p.span
span {{ $t('marketing4Lead3-3') }}
a.btn.btn-primary(href='/static/videos') {{ $t('watchVideos') }}
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.btn {
margin-left: 1em;
}
@@ -94,15 +89,9 @@
</style>
<script>
import AppFooter from 'client/components/appFooter';
import markdownDirective from 'client/directives/markdown';
import StaticHeader from './header.vue';
export default {
components: {
AppFooter,
StaticHeader,
},
directives: {
markdown: markdownDirective,
},

View File

@@ -1,31 +1,30 @@
<template lang="pug">
div
static-header
.container-fluid.main
.row
.col-6.offset-3
button.btn.btn-primary.btn-lg.btn-block(@click="goToNewGroupPage()") {{ $t('getAGroupPlanToday') }}
div
.container-fluid
.row
.col-6.offset-3
button.btn.btn-primary.btn-lg.btn-block(@click="goToNewGroupPage()") {{ $t('getAGroupPlanToday') }}
.row
.col-6.offset-3
br
.text-center {{ $t('groupSubscriptionPrice') }}
hr
.col-6.offset-3.text-center
.row.row-margin(style="font-size: 2rem;")
span {{ $t('enterprisePlansDescription') }}
.row.row-margin
// TODO
a.btn.btn-primary.btn-lg.btn-block(:href="'mailto:vicky@habitica.com?subject=' + $t('enterprisePlansEmailSubject')") {{ $t('enterprisePlansButton') }}
.row
.col-6.offset-3
br
.text-center {{ $t('groupSubscriptionPrice') }}
hr
.col-6.offset-3.text-center
.row.row-margin(style="font-size: 2rem;")
span {{ $t('enterprisePlansDescription') }}
.row.row-margin
// TODO
a.btn.btn-primary.btn-lg.btn-block(:href="'mailto:vicky@habitica.com?subject=' + $t('enterprisePlansEmailSubject')") {{ $t('enterprisePlansButton') }}
br
.row.row-margin(style="font-size: 2rem;")
span {{ $t('familyPlansDescription') }}
.row.row-margin
a.btn.btn-primary.btn-lg.btn-block(href="https://docs.google.com/forms/d/e/1FAIpQLSerMKkaCg3UcgpcMvBJtlNgnF9DNY8sxCebpAT-GHeDAQASPQ/viewform?usp=sf_link") {{ $t('familyPlansButton') }}
.row.row-margin(style="font-size: 2rem;")
span {{ $t('familyPlansDescription') }}
.row.row-margin
a.btn.btn-primary.btn-lg.btn-block(href="https://docs.google.com/forms/d/e/1FAIpQLSerMKkaCg3UcgpcMvBJtlNgnF9DNY8sxCebpAT-GHeDAQASPQ/viewform?usp=sf_link") {{ $t('familyPlansButton') }}
</template>
<style lang='scss' scoped>

View File

@@ -2,7 +2,7 @@
nav.navbar.navbar-inverse.fixed-top.navbar-toggleable-sm
.navbar-header
router-link.nav-item(
to='/home',
to='/static/home',
)
.logo.svg-icon(v-html='icons.logo')
.collapse.navbar-collapse

View File

@@ -4,8 +4,6 @@
br
a(href='http://www.enable-javascript.com/', target='_blank') {{ $t('jsDisabledLink') }}
static-header
#intro-signup.purple-1
.container
.row
@@ -118,39 +116,12 @@
img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/kickstarter-logo.png', alt="$t(altAttrKickstarter)")
img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/discover-logo.png', alt="$t(altAttrDiscover)")
#purple-footer
app-footer
#bottom-wrap.purple-4
#bottom-background
.seamless_mountains_demo_repeat
.midground_foreground_extended2
</template>
<style lang="scss">
#purple-footer {
background-color: #271b3d;
footer, footer a {
background: transparent;
color: #d5c8ff;
}
.logo {
color: #bda8ff;
}
.social-circle, .btn-donate {
background: #36205d;
color: #bda8ff;
.svg-icon {
color: #bda8ff;
}
}
}
</style>
<style lang="scss" scoped>
@import '~client/assets/scss/static.scss';
@@ -460,8 +431,6 @@
<script>
import hello from 'hellojs';
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
import googlePlay from 'assets/images/home/google-play-badge.svg';
import iosAppStore from 'assets/images/home/ios-app-store.svg';
import iphones from 'assets/images/home/iphones.svg';
@@ -474,10 +443,6 @@
import * as Analytics from 'client/libs/analytics';
export default {
components: {
AppFooter,
StaticHeader,
},
data () {
return {
icons: Object.freeze({
@@ -503,7 +468,7 @@
hitType: 'pageview',
eventCategory: 'page',
eventAction: 'landing page',
page: '/home',
page: '/static/home',
});
hello.init({

View File

@@ -1,25 +0,0 @@
<template lang="pug">
.col-6.offset-3
h1 {{ $t('habiticaBackSoon') }}
img.img-rendering-auto.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/assets/scene_maintenance.png')
p {{ $t('importantMaintenance') }}
p(v-html="$t('twitterMaintenanceUpdates')")
ul.lead(style='list-style-position:inside')
li {{ $t('noDamageKeepStreaks') }}
li {{ $t('veteranPetAward') }}
p(v-html="$t('maintenanceMoreInfo', maintenanceMoreInfo)")
p.lead {{ $t('thanksForPatience') }}
</template>
<script>
export default {
data () {
return {
maintenanceMoreInfo: {
linkStart: '<a href="/views/static/maintenance-info">',
linkEnd: '</a>',
},
};
},
};
</script>

View File

@@ -1,46 +0,0 @@
<template lang="pug">
.container
h1.text-center {{ $t('maintenanceInfoTitle') }}
img.img-rendering-auto.center-block.img-responsive(src='https://d2afqr2xdmyzvu.cloudfront.net/assets/scene_maintenance.png')
h2 {{ $t('maintenanceInfoWhat') }}
p(v-html="$t('maintenanceInfoWhatText')")
img.pull-left(src='https://d2afqr2xdmyzvu.cloudfront.net/assets/scene_new.png')
h2 {{ $t('maintenanceInfoWhy') }}
p {{ $t('maintenanceInfoWhyText') }}
p(v-html="$t('maintenanceInfoTechDetails')")
h2 {{ $t('maintenanceInfoMore') }}
h3 {{ $t('maintenanceInfoAccountChanges') }}
p(v-html="$t('maintenanceInfoAccountChangesText', { hrefTechAssistanceEmail })")
h3 {{ $t('maintenanceInfoAddFeatures') }}
p {{ $t('maintenanceInfoAddFeaturesText') }}
h3 {{ $t('maintenanceInfoHowLong') }}
img.pull-right(src='https://d2afqr2xdmyzvu.cloudfront.net/assets/scene_chatter.png')
p(v-html="$t('maintenanceInfoHowLongText')")
h3 {{ $t('maintenanceInfoStatsAffected') }}
p {{$t('maintenanceInfoStatsAffectedText1')}}
p {{$t('maintenanceInfoStatsAffectedText2')}}
h3 {{ $t('maintenanceInfoSeeTasks') }}
p {{ $t('maintenanceInfoSeeTasksText') }}
h3 {{ $t('maintenanceInfoRarePet') }}
p {{ $t('maintenanceInfoRarePetText') }}
img.pull-left(src='https://d2afqr2xdmyzvu.cloudfront.net/assets/scene_coding.png')
h3 {{ $t('maintenanceInfoWho') }}
p {{ $t('maintenanceInfoWhoText') }}
p {{ $t('maintenanceInfoTesting') }}
</template>
<script>
// @TODO: EMAILS.TECH_ASSISTANCE_EMAIL
const TECH_ASSISTANCE_EMAIL = 'admin@habitica.com';
export default {
data () {
return {
hrefTechAssistanceEmail: `<a href="mailto:${TECH_ASSISTANCE_EMAIL}">${TECH_ASSISTANCE_EMAIL}</a>`,
};
},
};
</script>

View File

@@ -1,41 +1,22 @@
<template lang="pug">
div
static-header
.container-fluid
.row
.col-md-6.offset-3
h1 {{ $t('merch') }}
// @TODO: how do we use static images here?
.col-lg-6.col-md-6.col-sm-12(v-for="(merchant, index) in merchants")
.merch-block
img(v-if='merchant.logo' :src="`~assets/images/merch/${merchant.key}-logo.png`")
h2(v-else) {{ merchant.name }}
div
a(:href="merchant.link" target='_blank')
img.img-rendering-auto(:src="`~assets/images/merch/${merchant.key}.png`")
p {{ $t('merch-' + merchant.key + '-summary') }}
a.btn.btn-primary(:href="merchant.link" target='_blank') {{$t('merch-' + merchant.key + '-goto')}}
app-footer
.container-fluid
.row
.col-md-6.offset-3
h1 {{ $t('merch') }}
// @TODO: how do we use static images here?
.col-lg-6.col-md-6.col-sm-12(v-for="(merchant, index) in merchants")
.merch-block
img(v-if='merchant.logo' :src="`~assets/images/merch/${merchant.key}-logo.png`")
h2(v-else) {{ merchant.name }}
div
a(:href="merchant.link" target='_blank')
img.img-rendering-auto(:src="`~assets/images/merch/${merchant.key}.png`")
p {{ $t('merch-' + merchant.key + '-summary') }}
a.btn.btn-primary(:href="merchant.link" target='_blank') {{$t('merch-' + merchant.key + '-goto')}}
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.container-fluid {
margin-top: 56px;
margin-bottom: 56px;
}
</style>
<script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
export default {
components: {
AppFooter,
StaticHeader,
},
data () {
return {
merchants: [

View File

@@ -1,42 +1,28 @@
<template lang="pug">
div
static-header
.container-fluid
h1 {{ $t('presskit') }}
p {{ $t('presskitText', { pressEnquiryEmail : PRESS_ENQUIRY_EMAIL }) }}
p
a.btn.btn-lg.btn-success(href='/presskit/presskit.zip') presskit.zip
.container-fluid
h1 {{ $t('presskit') }}
p {{ $t('presskitText', { pressEnquiryEmail : PRESS_ENQUIRY_EMAIL }) }}
p
a.btn.btn-lg.btn-success(href='/presskit/presskit.zip') presskit.zip
div(v-for='(images, category) in imgs')
h2 {{ $t('pk' + category) }}
div(v-if='Array.isArray(images)')
div(v-for='(images, category) in imgs')
h2 {{ $t('pk' + category) }}
div(v-if='Array.isArray(images)')
div(v-for='img in images')
img.img-rendering-auto.press-img(:src="`/presskit/${category}/${img}.png`")
div(v-else)
div(v-for='(images, category) in images')
h3 {{ $t('pk' + category) }}
div(v-for='img in images')
img.img-rendering-auto.press-img(:src="`/presskit/${category}/${img}.png`")
div(v-else)
div(v-for='(images, category) in images')
h3 {{ $t('pk' + category) }}
div(v-for='img in images')
img.img-rendering-auto.press-img(:src="`/presskit/#$category}/${cat}/${img}.png`")
app-footer
img.img-rendering-auto.press-img(:src="`/presskit/#$category}/${cat}/${img}.png`")
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
</style>
<script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
// @TODO: How to use images?
// @TODO: EMAILS.PRESS_ENQUIRY_EMAIL
const PRESS_ENQUIRY_EMAIL = 'admin@habitica.com';
export default {
components: {
AppFooter,
StaticHeader,
},
data () {
return {
PRESS_ENQUIRY_EMAIL,

View File

@@ -1,318 +1,299 @@
<template lang="pug">
div
static-header
.container-fluid
h1 Privacy Policy
p.pagemeta
| Last updated July 27, 2015
br
small (Corrected grammar errors and updated company name)
br
br
p
strong PLEASE READ THIS PRIVACY POLICY CAREFULLY&period;
br
| By accessing or otherwise using habitica&period;com or any sub domains thereto &lpar;&quot;the Sites&quot;&rpar;&comma;
| or using a habitica&period;com or Habitica application on a mobile device &lpar;&quot;the Applications&quot;&rpar;&comma;
| you agree to be bound contractually by this Privacy Policy&period; Individually
| or collectively&comma; the Applications and the Sites may be referred to as
| the &quot;Services&period;&quot;
p
| To review material modifications and their effective dates scroll
| to the bottom of the page&period;
p
strong
| 1&period; Privacy Statement&semi; Collection of Personal
| Information&period;
br
| 1&period;1 HabitRPG, Inc. owns and operates this business&period; All
| references to &quot;we&quot;&comma; &quot;us&quot;&comma; shall be construed to mean HabitRPG, Inc.&period;
p
| 1&period;2 We understand that visitors to this website are concerned
| about the privacy of information&period; The following describes our privacy
| policy regarding information&comma; including personal information&comma; that we
| collect through this website&period;
p
strong 2&period; Modification of Privacy Policy&period;
br
| We reserve the right to modify this Privacy Policy at any time&comma;
| and without prior notice&comma; by posting an amended Privacy Policy that is
| always accessible by clicking on the &quot;Privacy Policy&quot; link on this
| site&apos;s home page&period; Your continued use of this site indicates your
| acceptance of the amended Privacy Policy&period; You should check the Privacy
| Policy through this link periodically for modifications by clicking on
| the link provided near the top of the Privacy Policy for a listing of
| material modifications and their effective dates&period; Regarding personal
| information&comma; if any modifications are materially less restrictive on our
| use or disclosure of the personal information previously disclosed by
| you&comma; we will obtain your consent before implementing such revisions with
| respect to such information&period;
p
strong 3&period; Collection of Anonymous&comma; Passive Information&period;
br
| We reserve the right to monitor your use of the services&period; As you
| navigate through the services&comma; certain anonymous information may be
| passively collected &lpar;that is&comma; gathered without your actively providing
| the information&rpar; using various technologies&comma; such as cookies&comma; Internet
| tags or web beacons&comma; and navigational data collection &lpar;log files&comma; server
| logs&comma; clickstream&rpar;&period; The following is a listing and a brief explanation
| of passive information collection methodologies which we may use from
| time to time to better understand how the Services are being used&period;
p
| 3&period;1 A &quot;cookie&quot; is a text file that this site sends to your
| browser in the form of a text file The information generated by the
| cookie about your use of this site &lpar;including your IP address&rpar; will be
| transmitted to and stored&period; Most browsers automatically accept cookies&comma;
| but they usually can be modified to decline cookies if you prefer&semi;
| however&comma; certain features of this site might not work without cookies&period;
p
| 3&period;2 &quot;Session&quot; cookies are temporary bits of information that are
| used to improve navigation&comma; block visitors from providing information
| where inappropriate &lpar;the Services &quot;remembers&quot; previous entries of age or
| country of origin that were outside the specified parameters and blocks
| subsequent changes&rpar;&comma; and collect aggregate statistical information on
| the Services&period; They are erased once you exit your Web browser or
| otherwise turn off your computer&period;
p
| 3&period;3 &quot;Persistent&quot; cookies are more permanent bits of information
| that are placed on the hard drive of your computer and stay there unless
| you delete the cookie&period; Persistent cookies store information on your
| computer for a number of purposes&comma; such as retrieving certain
| information you have previously provided&comma; helping to determine what
| areas of the Services you may find most valuable&comma; and customizing the
| Services based on your preferences on an ongoing basis&period; Persistent
| cookies placed by this site in your computer do not hold personal
| information&period;
p
| 3&period;4 You can set your browser to accept all cookies&comma; to reject all
| cookies&comma; or to notify you whenever a cookie is offered so that you can
| decide each time whether to accept it&period; To learn more about cookies and
| how to specify your preferences&comma; please search for &quot;cookie&quot; in the
| &quot;Help&quot; portion of your browser&period;
p
| 3&period;5 An Internet Protocol &lpar;IP&rpar; address is a number assigned to
| your computer by your Internet service provider so you can access the
| Internet and is generally considered to be non-personally identifiable
| information&comma; because in most cases an IP address is dynamic &lpar;changing
| each time you connect to the Internet&rpar;&comma; rather than static &lpar;unique to a
| particular user&apos;s computer&rpar;&period; The IP address can be used to diagnose
| problems with a server&comma; report aggregate information&comma; determine the
| fastest route for your computer to use in connecting to a site&comma; and
| administer and improve the Services&period;
p
| 3&period;6 &quot;Internet tags&quot; &lpar;also known as Web Beacons&comma; single-pixel
| GIFs&comma; clear GIFs&comma; invisible GIFs&comma; and 1-by-1 GIFs&rpar; are smaller than
| cookies and tell the Web site server information such as the IP address
| and browser type related to the visitor&apos;s computer&period; Tags may be placed
| both on online advertisements that bring people to the Services and on
| different pages of the Services&period; Such tags indicate how many times a
| page is opened and which information is consulted&period;
p
| 3&period;7 &quot;Navigational data&quot; &lpar;log files&comma; server logs&comma; and clickstream
| data&rpar; are used for system management&comma; to improve the content of the
| Services&comma; market research purposes&comma; and to communicate information to
| visitors&period;
p
strong 4&period; Use and Sharing of Anonymous&comma; Passive Information&period;
br
| The Services may make full use of passively collected anonymous
| information&comma; including without limitation the right to use such
| information to provide better service to Service users&comma; customize the
| Services based on your preferences&comma; compile and analyze statistics and
| trends&comma; and otherwise administer and improve the Services for your use&period; We
| reserve the right to share this anonymous&comma; passive information in
| aggregated form&period;
p
strong 5&period; 3rd Party Behavioral Ads&semi; Google&apos;s AdSense Network&period;
br
| 5&period;1 We reserve the right to use anonymous&comma; passive information
| about your visits to this and other websites &lpar;not including your name&comma;
| address&comma; email address or telephone number&rpar; for purposes of serving our
| ads and third party ads that are targeted to your interests &lpar;&quot;3rd Party
| Behavioral Ads&quot;&rpar;&period; We reserve the right to share anonymous&comma; passive
| information collected on the services with third parties for purposes of
| serving 3rd Party Behavioral Ads&period; These 3rd Party Behavioral Ads do not
| identify you personally&period; Instead&comma; they associate your behavioral data on
| visited sites with your browser&comma; so that the ads your computer sees on
| this site are more likely to be relevant to your interests&period; 3rd Party
| Behavioral Ads require that that you be served with a cookie containing
| a tracking code&period; You may refuse the use of cookies by selecting the
| appropriate settings on your browser&semi; however&comma; please note that if you
| do this you may not be able to use the full functionality of this site&period;
p
| 5&period;2 We reserve the right to participate in Google&apos;s AdSense
| network for purposes of serving 3rd Party Behavioral Ads&period; Google uses
| DoubleClick&apos;s DART cookie for serving 3rd Party Behavioral Ads over the
| AdSense network&period; You may opt out of the use of the DART cookie&period; For
| information regarding how to opt out&comma; go to
| http&colon;&sol;&sol;www&period;google&period;com&sol;privacy&UnderBar;ads&period;html&period;
p
strong 6&period; Use of 3rd Party Analytics&period;
br
| We reserve the right to use analytics services provided by
| third parties&period; These services use 3rd party cookies to collect
| anonymous&comma; passive information about your use of this site &lpar;see
| explanation of cookies in Collection of Anonymous&comma; Passive Information
| above&rpar;&period; We use this information for the purpose of evaluating your use
| of the Services&comma; compiling reports on activity&comma; and providing other
| services&period; These web analytics services may also transfer this
| information to third parties where required to do so by law&comma; or where
| such third parties process the information on the service&apos;s behalf&period;
p
strong 7&period; Collection of Personal Information&semi; Categories&period;
br
| We will ask you for personal information when you sign up for any
| specific benefit or purpose that requires registration&period; Personal
| information that we collect may vary with each registration&comma; and it may
| include one or more of the following categories&colon; name&comma; physical
| address&comma; an email address&comma; phone number&comma; and credit card information
| including credit card number&comma; expiration date&comma; and billing address&comma;
| emergency contact information&comma; current medications&comma; allergies&comma; medical
| insurance information&period;
p
strong
| 8&period; Use And Sharing of Personal Information&colon; General
| Policy And Exceptions&period;
br
| Our general policy is that we will use your personal information&comma;
| including combining your personal information with passive information
| collected from this site&comma; only for&colon; the performance of the services or
| transaction for which it was given&comma; our private&comma; internal reporting for
| this site&comma; and security assessments for this site&comma; and we will not
| share&comma; sell&comma; or rent your personal information to others&period; The only
| exceptions to this general policy&colon; &lpar;i&rpar; are described in the subsections
| below&comma; and &lpar;ii&rpar; if you explicitly approve through our site&period;
p
| 8&period;1 Affiliates And Service Providers&period; We reserve the right to
| provide such information to our affiliates or subsidiaries&comma; or trusted
| service providers for the purpose of hosting our servers or processing
| or archiving personal information for us&period; We require that these parties
| agree to privacy and security safeguards for this information that are
| consistent with this Privacy Policy&period;
p
| 8&period;2 Acquisition&semi; Bankruptcy&period; In the event that we are acquired by
| or merged with a third party entity&comma; we reserve the right to transfer
| such information as part of such merger&comma; acquisition&comma; sale&comma; or other
| change of control&period; In the unlikely event of our bankruptcy&comma; insolvency&comma;
| reorganization&comma; receivership&comma; or assignment for the benefit of
| creditors&comma; or the application of laws or equitable principles affecting
| creditors&apos; rights generally&comma; we reserve the right to transfer such
| information to protect our rights or as required by law&period;
p
| 8&period;3 Enforcement&semi; Legal Process&period; We reserve the right to transfer
| such information if we have a good faith belief that access&comma; use&comma;
| preservation or disclosure of such information is reasonably necessary
| &lpar;i&rpar; to satisfy any applicable law&comma; regulation&comma; legal process or
| enforceable governmental request&comma; or &lpar;ii&rpar; to investigate or enforce
| violations of our rights or the security of this site&period;
p
| 8&period;4 Miscellaneous&period; We reserve the right to share personal
| information with the following additional parties&colon; online organizers
| using our tools and resellers of our products and services from whose
| site the sale originated &lpar;even though the sale originates at site of the
| reseller&comma; registration and collection of personal information occurs at
| this site&rpar;&period;
p
strong
| 9&period; Onward Transfer of Personal Information Outside Your
| Country of Residence&period;
br
| Any personal information which we may collect on this site will
| be stored and processed in our servers located only in the United
| States&period; By using this site&comma; if you reside outside the United States&comma; you
| consent to the transfer of personal information outside your country of
| residence to the United States&period;
p
strong 10&period; Security of Personal Information&period;
br
| We follow reasonable and appropriate industry standards to
| protect your personal information and data&period; Unfortunately&comma; no data
| transmission over the Internet or method of data storage can be
| guaranteed 100&percnt; secure&period; Therefore&comma; while we strive to protect your
| personal information by following generally accepted industry standards&comma;
| we cannot ensure or warrant the absolute security of any information you
| transmit to us or archive at this site&period;
p
strong 11&period; Changing And Updating Personal Information&period;
br
| Upon request&comma; we will permit you to request or make changes or
| updates to your personal information for legitimate purposes&period; We request
| identification prior to approving such requests&period; We reserve the right to
| decline any requests that are unreasonably repetitive or systematic&comma;
| require unreasonable time or effort of our technical or administrative
| personnel&comma; or undermine the privacy rights of others&period; We reserve the
| right to permit you to access your personal information in any account
| you establish with this site for purposes of making your own changes or
| updates&comma; and in such case&comma; instructions for making such changes or
| updates will be provided where necessary&period;
p
strong 12&period; Email From This Site&semi; Opt-Out Rights&period;
br
| If you supply us with your e-mail address you may receive
| periodic messages from us with information specific to the Services and
| required for the normal functioning of the Services as well as for new
| products or services or upcoming events&period; If you prefer not to receive
| periodic email messages&comma; you may opt-out by following the instructions
| on the email&period;
p
strong 13&period; Children&apos;s Online Policy&period;
br
| We are committed to preserving online privacy for all of our
| website visitors&comma; including children&period; This site is a general audience
| site&period; Consistent with the Children&apos;s Online Privacy Protection Act
| &lpar;COPPA&rpar;&comma; we will not knowingly collect any information from&comma; or sell to&comma;
| children under the age of 13&period; If you are a parent or guardian who has
| discovered that your child under the age of 13 has submitted his or her
| personally identifiable information without your permission or consent&comma;
| we will remove the information from our active list&comma; at your request&period; To
| request the removal of your child&apos;s information&comma; please email us at
| <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> and be sure to include in
| your message the same login information that your child submitted&period;
p
strong
| 14&period; Email And Other Messages Through This Site&semi; ECPA
| Notice&period;
br
| This site treats email messages and other electronic messages
| that are sent through this site and not viewable by others as
| confidential and private&comma; except as required by law&comma; including without
| limitation&comma; the Electronic Communications Privacy Act of 1986&comma; 18 U&period;S&period;C&period;
| Sections 2701-2711 &lpar;the &quot;ECPA&quot;&rpar;&period; The ECPA permits this site&apos;s limited
| ability to intercept and&sol;or disclose electronic messages&comma; for example
| &lpar;i&rpar; as necessary to operate our system or to protect our rights or
| property&comma; &lpar;ii&rpar; upon legal demand &lpar;court orders&comma; warrants&comma; subpoenas&rpar;&comma; or
| &lpar;iii&rpar; where we receive information inadvertently which appears to
| pertain to the commission of a crime&period; This site is not considered a
| &quot;secure communications medium&quot; under the ECPA&period;
p
strong 15&period; Contact Us&period;
br
| If you have any questions regarding this Privacy Policy&comma; please
| contact the owner and operator of this website business&colon;
address
strong HabitRPG, Inc.
br
| 11870 Santa Monica Blvd., Suite 106-577
br
| Los Angeles, CA 90025
br
| Email&colon;&nbsp;
a(href='mailto:admin@habitica.com') admin@habitica.com
app-footer
.container-fluid
h1 Privacy Policy
p.pagemeta
| Last updated July 27, 2015
br
small (Corrected grammar errors and updated company name)
br
br
p
strong PLEASE READ THIS PRIVACY POLICY CAREFULLY&period;
br
| By accessing or otherwise using habitica&period;com or any sub domains thereto &lpar;&quot;the Sites&quot;&rpar;&comma;
| or using a habitica&period;com or Habitica application on a mobile device &lpar;&quot;the Applications&quot;&rpar;&comma;
| you agree to be bound contractually by this Privacy Policy&period; Individually
| or collectively&comma; the Applications and the Sites may be referred to as
| the &quot;Services&period;&quot;
p
| To review material modifications and their effective dates scroll
| to the bottom of the page&period;
p
strong
| 1&period; Privacy Statement&semi; Collection of Personal
| Information&period;
br
| 1&period;1 HabitRPG, Inc. owns and operates this business&period; All
| references to &quot;we&quot;&comma; &quot;us&quot;&comma; shall be construed to mean HabitRPG, Inc.&period;
p
| 1&period;2 We understand that visitors to this website are concerned
| about the privacy of information&period; The following describes our privacy
| policy regarding information&comma; including personal information&comma; that we
| collect through this website&period;
p
strong 2&period; Modification of Privacy Policy&period;
br
| We reserve the right to modify this Privacy Policy at any time&comma;
| and without prior notice&comma; by posting an amended Privacy Policy that is
| always accessible by clicking on the &quot;Privacy Policy&quot; link on this
| site&apos;s home page&period; Your continued use of this site indicates your
| acceptance of the amended Privacy Policy&period; You should check the Privacy
| Policy through this link periodically for modifications by clicking on
| the link provided near the top of the Privacy Policy for a listing of
| material modifications and their effective dates&period; Regarding personal
| information&comma; if any modifications are materially less restrictive on our
| use or disclosure of the personal information previously disclosed by
| you&comma; we will obtain your consent before implementing such revisions with
| respect to such information&period;
p
strong 3&period; Collection of Anonymous&comma; Passive Information&period;
br
| We reserve the right to monitor your use of the services&period; As you
| navigate through the services&comma; certain anonymous information may be
| passively collected &lpar;that is&comma; gathered without your actively providing
| the information&rpar; using various technologies&comma; such as cookies&comma; Internet
| tags or web beacons&comma; and navigational data collection &lpar;log files&comma; server
| logs&comma; clickstream&rpar;&period; The following is a listing and a brief explanation
| of passive information collection methodologies which we may use from
| time to time to better understand how the Services are being used&period;
p
| 3&period;1 A &quot;cookie&quot; is a text file that this site sends to your
| browser in the form of a text file The information generated by the
| cookie about your use of this site &lpar;including your IP address&rpar; will be
| transmitted to and stored&period; Most browsers automatically accept cookies&comma;
| but they usually can be modified to decline cookies if you prefer&semi;
| however&comma; certain features of this site might not work without cookies&period;
p
| 3&period;2 &quot;Session&quot; cookies are temporary bits of information that are
| used to improve navigation&comma; block visitors from providing information
| where inappropriate &lpar;the Services &quot;remembers&quot; previous entries of age or
| country of origin that were outside the specified parameters and blocks
| subsequent changes&rpar;&comma; and collect aggregate statistical information on
| the Services&period; They are erased once you exit your Web browser or
| otherwise turn off your computer&period;
p
| 3&period;3 &quot;Persistent&quot; cookies are more permanent bits of information
| that are placed on the hard drive of your computer and stay there unless
| you delete the cookie&period; Persistent cookies store information on your
| computer for a number of purposes&comma; such as retrieving certain
| information you have previously provided&comma; helping to determine what
| areas of the Services you may find most valuable&comma; and customizing the
| Services based on your preferences on an ongoing basis&period; Persistent
| cookies placed by this site in your computer do not hold personal
| information&period;
p
| 3&period;4 You can set your browser to accept all cookies&comma; to reject all
| cookies&comma; or to notify you whenever a cookie is offered so that you can
| decide each time whether to accept it&period; To learn more about cookies and
| how to specify your preferences&comma; please search for &quot;cookie&quot; in the
| &quot;Help&quot; portion of your browser&period;
p
| 3&period;5 An Internet Protocol &lpar;IP&rpar; address is a number assigned to
| your computer by your Internet service provider so you can access the
| Internet and is generally considered to be non-personally identifiable
| information&comma; because in most cases an IP address is dynamic &lpar;changing
| each time you connect to the Internet&rpar;&comma; rather than static &lpar;unique to a
| particular user&apos;s computer&rpar;&period; The IP address can be used to diagnose
| problems with a server&comma; report aggregate information&comma; determine the
| fastest route for your computer to use in connecting to a site&comma; and
| administer and improve the Services&period;
p
| 3&period;6 &quot;Internet tags&quot; &lpar;also known as Web Beacons&comma; single-pixel
| GIFs&comma; clear GIFs&comma; invisible GIFs&comma; and 1-by-1 GIFs&rpar; are smaller than
| cookies and tell the Web site server information such as the IP address
| and browser type related to the visitor&apos;s computer&period; Tags may be placed
| both on online advertisements that bring people to the Services and on
| different pages of the Services&period; Such tags indicate how many times a
| page is opened and which information is consulted&period;
p
| 3&period;7 &quot;Navigational data&quot; &lpar;log files&comma; server logs&comma; and clickstream
| data&rpar; are used for system management&comma; to improve the content of the
| Services&comma; market research purposes&comma; and to communicate information to
| visitors&period;
p
strong 4&period; Use and Sharing of Anonymous&comma; Passive Information&period;
br
| The Services may make full use of passively collected anonymous
| information&comma; including without limitation the right to use such
| information to provide better service to Service users&comma; customize the
| Services based on your preferences&comma; compile and analyze statistics and
| trends&comma; and otherwise administer and improve the Services for your use&period; We
| reserve the right to share this anonymous&comma; passive information in
| aggregated form&period;
p
strong 5&period; 3rd Party Behavioral Ads&semi; Google&apos;s AdSense Network&period;
br
| 5&period;1 We reserve the right to use anonymous&comma; passive information
| about your visits to this and other websites &lpar;not including your name&comma;
| address&comma; email address or telephone number&rpar; for purposes of serving our
| ads and third party ads that are targeted to your interests &lpar;&quot;3rd Party
| Behavioral Ads&quot;&rpar;&period; We reserve the right to share anonymous&comma; passive
| information collected on the services with third parties for purposes of
| serving 3rd Party Behavioral Ads&period; These 3rd Party Behavioral Ads do not
| identify you personally&period; Instead&comma; they associate your behavioral data on
| visited sites with your browser&comma; so that the ads your computer sees on
| this site are more likely to be relevant to your interests&period; 3rd Party
| Behavioral Ads require that that you be served with a cookie containing
| a tracking code&period; You may refuse the use of cookies by selecting the
| appropriate settings on your browser&semi; however&comma; please note that if you
| do this you may not be able to use the full functionality of this site&period;
p
| 5&period;2 We reserve the right to participate in Google&apos;s AdSense
| network for purposes of serving 3rd Party Behavioral Ads&period; Google uses
| DoubleClick&apos;s DART cookie for serving 3rd Party Behavioral Ads over the
| AdSense network&period; You may opt out of the use of the DART cookie&period; For
| information regarding how to opt out&comma; go to
| http&colon;&sol;&sol;www&period;google&period;com&sol;privacy&UnderBar;ads&period;html&period;
p
strong 6&period; Use of 3rd Party Analytics&period;
br
| We reserve the right to use analytics services provided by
| third parties&period; These services use 3rd party cookies to collect
| anonymous&comma; passive information about your use of this site &lpar;see
| explanation of cookies in Collection of Anonymous&comma; Passive Information
| above&rpar;&period; We use this information for the purpose of evaluating your use
| of the Services&comma; compiling reports on activity&comma; and providing other
| services&period; These web analytics services may also transfer this
| information to third parties where required to do so by law&comma; or where
| such third parties process the information on the service&apos;s behalf&period;
p
strong 7&period; Collection of Personal Information&semi; Categories&period;
br
| We will ask you for personal information when you sign up for any
| specific benefit or purpose that requires registration&period; Personal
| information that we collect may vary with each registration&comma; and it may
| include one or more of the following categories&colon; name&comma; physical
| address&comma; an email address&comma; phone number&comma; and credit card information
| including credit card number&comma; expiration date&comma; and billing address&comma;
| emergency contact information&comma; current medications&comma; allergies&comma; medical
| insurance information&period;
p
strong
| 8&period; Use And Sharing of Personal Information&colon; General
| Policy And Exceptions&period;
br
| Our general policy is that we will use your personal information&comma;
| including combining your personal information with passive information
| collected from this site&comma; only for&colon; the performance of the services or
| transaction for which it was given&comma; our private&comma; internal reporting for
| this site&comma; and security assessments for this site&comma; and we will not
| share&comma; sell&comma; or rent your personal information to others&period; The only
| exceptions to this general policy&colon; &lpar;i&rpar; are described in the subsections
| below&comma; and &lpar;ii&rpar; if you explicitly approve through our site&period;
p
| 8&period;1 Affiliates And Service Providers&period; We reserve the right to
| provide such information to our affiliates or subsidiaries&comma; or trusted
| service providers for the purpose of hosting our servers or processing
| or archiving personal information for us&period; We require that these parties
| agree to privacy and security safeguards for this information that are
| consistent with this Privacy Policy&period;
p
| 8&period;2 Acquisition&semi; Bankruptcy&period; In the event that we are acquired by
| or merged with a third party entity&comma; we reserve the right to transfer
| such information as part of such merger&comma; acquisition&comma; sale&comma; or other
| change of control&period; In the unlikely event of our bankruptcy&comma; insolvency&comma;
| reorganization&comma; receivership&comma; or assignment for the benefit of
| creditors&comma; or the application of laws or equitable principles affecting
| creditors&apos; rights generally&comma; we reserve the right to transfer such
| information to protect our rights or as required by law&period;
p
| 8&period;3 Enforcement&semi; Legal Process&period; We reserve the right to transfer
| such information if we have a good faith belief that access&comma; use&comma;
| preservation or disclosure of such information is reasonably necessary
| &lpar;i&rpar; to satisfy any applicable law&comma; regulation&comma; legal process or
| enforceable governmental request&comma; or &lpar;ii&rpar; to investigate or enforce
| violations of our rights or the security of this site&period;
p
| 8&period;4 Miscellaneous&period; We reserve the right to share personal
| information with the following additional parties&colon; online organizers
| using our tools and resellers of our products and services from whose
| site the sale originated &lpar;even though the sale originates at site of the
| reseller&comma; registration and collection of personal information occurs at
| this site&rpar;&period;
p
strong
| 9&period; Onward Transfer of Personal Information Outside Your
| Country of Residence&period;
br
| Any personal information which we may collect on this site will
| be stored and processed in our servers located only in the United
| States&period; By using this site&comma; if you reside outside the United States&comma; you
| consent to the transfer of personal information outside your country of
| residence to the United States&period;
p
strong 10&period; Security of Personal Information&period;
br
| We follow reasonable and appropriate industry standards to
| protect your personal information and data&period; Unfortunately&comma; no data
| transmission over the Internet or method of data storage can be
| guaranteed 100&percnt; secure&period; Therefore&comma; while we strive to protect your
| personal information by following generally accepted industry standards&comma;
| we cannot ensure or warrant the absolute security of any information you
| transmit to us or archive at this site&period;
p
strong 11&period; Changing And Updating Personal Information&period;
br
| Upon request&comma; we will permit you to request or make changes or
| updates to your personal information for legitimate purposes&period; We request
| identification prior to approving such requests&period; We reserve the right to
| decline any requests that are unreasonably repetitive or systematic&comma;
| require unreasonable time or effort of our technical or administrative
| personnel&comma; or undermine the privacy rights of others&period; We reserve the
| right to permit you to access your personal information in any account
| you establish with this site for purposes of making your own changes or
| updates&comma; and in such case&comma; instructions for making such changes or
| updates will be provided where necessary&period;
p
strong 12&period; Email From This Site&semi; Opt-Out Rights&period;
br
| If you supply us with your e-mail address you may receive
| periodic messages from us with information specific to the Services and
| required for the normal functioning of the Services as well as for new
| products or services or upcoming events&period; If you prefer not to receive
| periodic email messages&comma; you may opt-out by following the instructions
| on the email&period;
p
strong 13&period; Children&apos;s Online Policy&period;
br
| We are committed to preserving online privacy for all of our
| website visitors&comma; including children&period; This site is a general audience
| site&period; Consistent with the Children&apos;s Online Privacy Protection Act
| &lpar;COPPA&rpar;&comma; we will not knowingly collect any information from&comma; or sell to&comma;
| children under the age of 13&period; If you are a parent or guardian who has
| discovered that your child under the age of 13 has submitted his or her
| personally identifiable information without your permission or consent&comma;
| we will remove the information from our active list&comma; at your request&period; To
| request the removal of your child&apos;s information&comma; please email us at
| <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> and be sure to include in
| your message the same login information that your child submitted&period;
p
strong
| 14&period; Email And Other Messages Through This Site&semi; ECPA
| Notice&period;
br
| This site treats email messages and other electronic messages
| that are sent through this site and not viewable by others as
| confidential and private&comma; except as required by law&comma; including without
| limitation&comma; the Electronic Communications Privacy Act of 1986&comma; 18 U&period;S&period;C&period;
| Sections 2701-2711 &lpar;the &quot;ECPA&quot;&rpar;&period; The ECPA permits this site&apos;s limited
| ability to intercept and&sol;or disclose electronic messages&comma; for example
| &lpar;i&rpar; as necessary to operate our system or to protect our rights or
| property&comma; &lpar;ii&rpar; upon legal demand &lpar;court orders&comma; warrants&comma; subpoenas&rpar;&comma; or
| &lpar;iii&rpar; where we receive information inadvertently which appears to
| pertain to the commission of a crime&period; This site is not considered a
| &quot;secure communications medium&quot; under the ECPA&period;
p
strong 15&period; Contact Us&period;
br
| If you have any questions regarding this Privacy Policy&comma; please
| contact the owner and operator of this website business&colon;
address
strong HabitRPG, Inc.
br
| 11870 Santa Monica Blvd., Suite 106-577
br
| Los Angeles, CA 90025
br
| Email&colon;&nbsp;
a(href='mailto:admin@habitica.com') admin@habitica.com
</template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
</style>
<script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
export default {
components: {
AppFooter,
StaticHeader,
},
};
</script>

View File

@@ -0,0 +1,75 @@
<template lang='pug'>
div
static-header
.static-wrapper
router-view
#purple-footer
app-footer
</template>
<style lang='scss'>
@import '~client/assets/scss/colors.scss';
#purple-footer {
background-color: #271b3d;
footer, footer a {
background: transparent;
color: #d5c8ff;
}
.logo {
color: #bda8ff;
}
.social-circle, .btn-donate {
background: #36205d;
color: #bda8ff;
.svg-icon {
color: #bda8ff;
}
}
}
.static-wrapper {
.container-fluid {
margin: 5em 2em 2em 2em;
}
h1, h2 {
margin-top: 0.5em;
color: $purple-200;
}
h3, h4 {
color: $purple-200;
}
li, p {
font-size: 16px;
}
.media img {
margin: 1em;
}
.strong {
font-weight: bold;
}
}
</style>
<script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
export default {
components: {
AppFooter,
StaticHeader,
},
};
</script>

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
<template lang="pug">
.row
.col-md-12#aboutPage
iframe(src='//player.vimeo.com/video/76557040', width='100%', height='539', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
iframe(src='//player.vimeo.com/video/57654086', width='100%', height='539', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
iframe(src='//player.vimeo.com/video/79172253', width='100%', height='539', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
iframe(src='//player.vimeo.com/video/79172327', width='100%', height='539', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
iframe(src='//player.vimeo.com/video/79172363', width='100%', height='539', frameborder='0', webkitallowfullscreen='', mozallowfullscreen='', allowfullscreen='')
</template>

View File

@@ -9,6 +9,7 @@ import * as Analytics from 'client/libs/analytics';
import ParentPage from './components/parentPage';
// Static Pages
const StaticWrapper = () => import(/* webpackChunkName: "static" */'./components/static/staticWrapper');
const AppPage = () => import(/* webpackChunkName: "static" */'./components/static/app');
const ClearBrowserDataPage = () => import(/* webpackChunkName: "static" */'./components/static/clearBrowserData');
const CommunityGuidelinesPage = () => import(/* webpackChunkName: "static" */'./components/static/communityGuidelines');
@@ -17,14 +18,11 @@ const FAQPage = () => import(/* webpackChunkName: "static" */'./components/stati
const FeaturesPage = () => import(/* webpackChunkName: "static" */'./components/static/features');
const HomePage = () => import(/* webpackChunkName: "static" */'./components/static/home');
const GroupPlansPage = () => import(/* webpackChunkName: "static" */'./components/static/groupPlans');
const MaintenancePage = () => import(/* webpackChunkName: "static" */'./components/static/maintenance');
const MaintenanceInfoPage = () => import(/* webpackChunkName: "static" */'./components/static/maintenanceInfo');
const MerchPage = () => import(/* webpackChunkName: "static" */'./components/static/merch');
const OverviewPage = () => import(/* webpackChunkName: "static" */'./components/static/overview');
const PressKitPage = () => import(/* webpackChunkName: "static" */'./components/static/pressKit');
const PrivacyPage = () => import(/* webpackChunkName: "static" */'./components/static/privacy');
const TermsPage = () => import(/* webpackChunkName: "static" */'./components/static/terms');
const VideosPage = () => import(/* webpackChunkName: "static" */'./components/static/videos');
const RegisterLogin = () => import(/* webpackChunkName: "auth" */'./components/auth/registerLogin');
@@ -100,7 +98,6 @@ const router = new VueRouter({
},
// requiresLogin is true by default, isStatic false
routes: [
{ name: 'home', path: '/home', component: HomePage, meta: {requiresLogin: false} },
{ name: 'register', path: '/register', component: RegisterLogin, meta: {requiresLogin: false} },
{ name: 'login', path: '/login', component: RegisterLogin, meta: {requiresLogin: false} },
{ name: 'tasks', path: '/', component: UserTasks },
@@ -239,7 +236,7 @@ const router = new VueRouter({
},
{
path: '/static',
component: ParentPage,
component: StaticWrapper,
children: [
{ name: 'app', path: 'app', component: AppPage, meta: {requiresLogin: false}},
{ name: 'clearBrowserData', path: 'clear-browser-data', component: ClearBrowserDataPage, meta: {requiresLogin: false}},
@@ -248,15 +245,13 @@ const router = new VueRouter({
{ name: 'faq', path: 'faq', component: FAQPage, meta: {requiresLogin: false}},
{ name: 'features', path: 'features', component: FeaturesPage, meta: {requiresLogin: false}},
{ name: 'groupPlans', path: 'group-plans', component: GroupPlansPage, meta: {requiresLogin: false}},
{ name: 'maintenance', path: 'maintenance', component: MaintenancePage, meta: {requiresLogin: false}},
{ name: 'maintenance-info', path: 'maintenance-info', component: MaintenanceInfoPage, meta: {requiresLogin: false}},
{ name: 'home', path: 'home', component: HomePage, meta: {requiresLogin: false} },
{ name: 'merch', path: 'merch', component: MerchPage, meta: {requiresLogin: false}},
{ name: 'overview', path: 'overview', component: OverviewPage, meta: {requiresLogin: false}},
{ name: 'plans', path: 'plans', component: GroupPlansPage, meta: {requiresLogin: false}},
{ name: 'pressKit', path: 'press-kit', component: PressKitPage, meta: {requiresLogin: false}},
{ name: 'privacy', path: 'privacy', component: PrivacyPage, meta: {requiresLogin: false}},
{ name: 'terms', path: 'terms', component: TermsPage, meta: {requiresLogin: false}},
{ name: 'videos', path: 'videos', component: VideosPage, meta: {requiresLogin: false}},
],
},
{