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 () { copyingMessage () {
this.text = this.copyingMessage.text; this.text = this.copyingMessage.text;
let baseUrl = 'https://habitica.com'; 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: { methods: {

View File

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

View File

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

View File

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

View File

@@ -1,64 +1,41 @@
<template lang="pug"> <template lang="pug">
div .container-fluid
static-header .row
.container-fluid .col-md-6.offset-3
.row h1 {{ $t('contactUs') }}
.col-md-6.offset-3
h1 {{ $t('contactUs') }}
p p
| {{ $t('reportAccountProblems') }} | {{ $t('reportAccountProblems') }}
| &colon;&nbsp; | &colon;&nbsp;
a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com
br br
| {{ $t('reportBug') }} | {{ $t('reportBug') }}
| &colon;&nbsp; | &colon;&nbsp;
a(target='_blank', href='/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac') Report a Bug guild a(target='_blank', href='/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac') Report a Bug guild
| &nbsp;or&nbsp; | &nbsp;or&nbsp;
a(target='_blank', href='https://github.com/HabitRPG/habitica/issues?q=is%3Aopen') GitHub a(target='_blank', href='https://github.com/HabitRPG/habitica/issues?q=is%3Aopen') GitHub
br br
| {{ $t('reportCommunityIssues') }} | {{ $t('reportCommunityIssues') }}
| &colon;&nbsp; | &colon;&nbsp;
a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com
br br
| {{ $t('subscriptionPaymentIssues') }} | {{ $t('subscriptionPaymentIssues') }}
| &colon;&nbsp; | &colon;&nbsp;
a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com
br br
| {{ $t('generalQuestionsSite') }} | {{ $t('generalQuestionsSite') }}
| &colon;&nbsp; | &colon;&nbsp;
a(target='_blank', href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a') Habitica Help guild a(target='_blank', href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a') Habitica Help guild
br br
| {{ $t('businessInquiries') }} | {{ $t('businessInquiries') }}
| &colon;&nbsp; | &colon;&nbsp;
a(href='mailto:vicky@habitica.com') vicky&commat;habitica&period;com a(href='mailto:vicky@habitica.com') vicky&commat;habitica&period;com
br br
| {{ $t('merchandiseInquiries') }} | {{ $t('merchandiseInquiries') }}
| &colon;&nbsp; | &colon;&nbsp;
a(href='mailto:store@habitica.com') store&commat;habitica&period;com a(href='mailto:store@habitica.com') store&commat;habitica&period;com
br br
| {{ $t('marketingInquiries') }} | {{ $t('marketingInquiries') }}
| &colon;&nbsp; | &colon;&nbsp;
a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com
app-footer
</template> </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"> <template lang="pug">
div .container-fluid
static-header .row
.container-fluid .col-md-6.offset-3
.row h1 {{ $t('frequentlyAskedQuestions') }}
.col-md-6.offset-3 .faq-question(v-for='(heading, index) in headings')
h1 {{ $t('frequentlyAskedQuestions') }} h2.accordion(@click='setActivePage(heading)') {{ $t(`faqQuestion${index}`) }}
.faq-question(v-for='(heading, index) in headings') div(v-if='pageState[heading]', v-markdown="$t('webFaqAnswer' + index, replacements)")
h2.accordion(@click='setActivePage(heading)') {{ $t(`faqQuestion${index}`) }} hr
div(v-if='pageState[heading]', v-markdown="$t('webFaqAnswer' + index, replacements)") p(v-markdown="$t('webFaqStillNeedHelp')")
hr
p(v-markdown="$t('webFaqStillNeedHelp')")
app-footer
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.container-fluid {
margin-top: 56px;
}
.faq-question { .faq-question {
margin-bottom: 1em; margin-bottom: 1em;
} }
@@ -28,15 +19,9 @@
<script> <script>
// @TODO: env.EMAILS.TECH_ASSISTANCE_EMAIL // @TODO: env.EMAILS.TECH_ASSISTANCE_EMAIL
const TECH_ASSISTANCE_EMAIL = 'admin@habitica.com'; const TECH_ASSISTANCE_EMAIL = 'admin@habitica.com';
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
import markdownDirective from 'client/directives/markdown'; import markdownDirective from 'client/directives/markdown';
export default { export default {
components: {
AppFooter,
StaticHeader,
},
directives: { directives: {
markdown: markdownDirective, markdown: markdownDirective,
}, },

View File

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

View File

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

View File

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

View File

@@ -4,8 +4,6 @@
br br
a(href='http://www.enable-javascript.com/', target='_blank') {{ $t('jsDisabledLink') }} a(href='http://www.enable-javascript.com/', target='_blank') {{ $t('jsDisabledLink') }}
static-header
#intro-signup.purple-1 #intro-signup.purple-1
.container .container
.row .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/kickstarter-logo.png', alt="$t(altAttrKickstarter)")
img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/discover-logo.png', alt="$t(altAttrDiscover)") img(src='https://d2afqr2xdmyzvu.cloudfront.net/front/images/presslogos/discover-logo.png', alt="$t(altAttrDiscover)")
#purple-footer
app-footer
#bottom-wrap.purple-4 #bottom-wrap.purple-4
#bottom-background #bottom-background
.seamless_mountains_demo_repeat .seamless_mountains_demo_repeat
.midground_foreground_extended2 .midground_foreground_extended2
</template> </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> <style lang="scss" scoped>
@import '~client/assets/scss/static.scss'; @import '~client/assets/scss/static.scss';
@@ -460,8 +431,6 @@
<script> <script>
import hello from 'hellojs'; 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 googlePlay from 'assets/images/home/google-play-badge.svg';
import iosAppStore from 'assets/images/home/ios-app-store.svg'; import iosAppStore from 'assets/images/home/ios-app-store.svg';
import iphones from 'assets/images/home/iphones.svg'; import iphones from 'assets/images/home/iphones.svg';
@@ -474,10 +443,6 @@
import * as Analytics from 'client/libs/analytics'; import * as Analytics from 'client/libs/analytics';
export default { export default {
components: {
AppFooter,
StaticHeader,
},
data () { data () {
return { return {
icons: Object.freeze({ icons: Object.freeze({
@@ -503,7 +468,7 @@
hitType: 'pageview', hitType: 'pageview',
eventCategory: 'page', eventCategory: 'page',
eventAction: 'landing page', eventAction: 'landing page',
page: '/home', page: '/static/home',
}); });
hello.init({ 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"> <template lang="pug">
div .container-fluid
static-header .row
.container-fluid .col-md-6.offset-3
.row h1 {{ $t('merch') }}
.col-md-6.offset-3 // @TODO: how do we use static images here?
h1 {{ $t('merch') }} .col-lg-6.col-md-6.col-sm-12(v-for="(merchant, index) in merchants")
// @TODO: how do we use static images here? .merch-block
.col-lg-6.col-md-6.col-sm-12(v-for="(merchant, index) in merchants") img(v-if='merchant.logo' :src="`~assets/images/merch/${merchant.key}-logo.png`")
.merch-block h2(v-else) {{ merchant.name }}
img(v-if='merchant.logo' :src="`~assets/images/merch/${merchant.key}-logo.png`") div
h2(v-else) {{ merchant.name }} a(:href="merchant.link" target='_blank')
div img.img-rendering-auto(:src="`~assets/images/merch/${merchant.key}.png`")
a(:href="merchant.link" target='_blank') p {{ $t('merch-' + merchant.key + '-summary') }}
img.img-rendering-auto(:src="`~assets/images/merch/${merchant.key}.png`") a.btn.btn-primary(:href="merchant.link" target='_blank') {{$t('merch-' + merchant.key + '-goto')}}
p {{ $t('merch-' + merchant.key + '-summary') }}
a.btn.btn-primary(:href="merchant.link" target='_blank') {{$t('merch-' + merchant.key + '-goto')}}
app-footer
</template> </template>
<style lang='scss' scoped>
@import '~client/assets/scss/static.scss';
.container-fluid {
margin-top: 56px;
margin-bottom: 56px;
}
</style>
<script> <script>
import AppFooter from 'client/components/appFooter';
import StaticHeader from './header.vue';
export default { export default {
components: {
AppFooter,
StaticHeader,
},
data () { data () {
return { return {
merchants: [ merchants: [

View File

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

View File

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