script(id='partials/options.settings.html', type="text/ng-template") ul.nav.nav-tabs li(ng-class="{ active: $state.includes('options.settings.settings') }") a(ui-sref='options.settings.settings') =env.t('settings') li(ng-class="{ active: $state.includes('options.settings.api') }") a(ui-sref='options.settings.api') =env.t('API') li(ng-class="{ active: $state.includes('options.settings.export') }") a(ui-sref='options.settings.export') =env.t('dataexport') li(ng-class="{ active: $state.includes('options.settings.subscription') }") a(ui-sref='options.settings.subscription') | Subscription .tab-content .tab-pane.active div(ui-view) script(type='text/ng-template', id='partials/options.settings.settings.html') .row-fluid .personal-options.span6 h2=env.t('settings') h4=env.t('customDayStart') .option-group.option-short input.option-content.option-time(type='number', min='0', max='24', ng-model='user.preferences.dayStart', ng-change='saveDayStart()') span.input-suffix= ':00 (' + env.t('24HrClock') + ')' div small div=env.t('clockInfo') .alert.alert-danger Warning: this is a highly-experimental feature, and many experience issues with it. hr h4=env.t('language') select(ng-model='language.code', ng-options='lang.code as lang.name for lang in avalaibleLanguages', ng-change='changeLanguage()') hr h4=env.t('misc') label.checkbox input(type='checkbox', ng-click='set({"preferences.hideHeader":user.preferences.hideHeader?false:true})', ng-checked='user.preferences.hideHeader!==true') =env.t('showHeader')   span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('showHeaderpop')) label.checkbox input(type='checkbox', ng-click='toggleStickyHeader()', ng-checked='user.preferences.stickyHeader!==false') =env.t('stickyHeader')   span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('stickyHeaderpop')) label.checkbox input(type='checkbox', ng-model='user.preferences.newTaskEdit', ng-change='set({"preferences.newTaskEdit": user.preferences.newTaskEdit?true: false})') =env.t('newtaskedit')   span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('newtaskeditpop')) label.checkbox input(type='checkbox', ng-model='user.preferences.tagsCollapsed', ng-change='set({"preferences.tagsCollapsed": user.preferences.tagsCollapsed?true: false})') =env.t('startcollapsed')   span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startcollapsedpop')) label.checkbox input(type='checkbox', ng-model='user.preferences.advancedCollapsed', ng-change='set({"preferences.advancedCollapsed": user.preferences.advancedCollapsed?true: false})') =env.t('startacollapsed')   span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startacollapsedpop')) button.btn(ng-click='showTour()', popover-placement='right', popover-trigger='mouseenter', popover=env.t('showtourpop1'))= env.t('showtour') br button.btn(ng-click='showBailey()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('showtourpop'))= env.t('showtour2') br button.btn(ng-click='modals.restore = true', popover-trigger='mouseenter', popover-placement='right', popover=env.t('fixvalpop'))= env.t('fixval') div(ng-if='user.preferences.disableClasses==true') button.btn(ng-click='user.ops.changeClass({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('enableclasspop'))= env.t('enableclass') div(ng-if='!user.preferences.disableClasses && user.flags.classSelected') button.btn(ng-click='showClassesTour()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('classtourpop'))= env.t('showclass') //- Why is ng-if='user.auth.local' validating for users *without* user.auth.local (facebook users)? adding .username here for extra div(ng-if='user.auth.local.username') hr h4=env.t('changePass') form(ng-submit='changePassword(changePass)', ng-show='user.auth.local') .control-group input(type='password', placeholder=env.t('oldPass'), ng-model='changePass.oldPassword', required) .control-group input(type='password', placeholder=env.t('newPass'), ng-model='changePass.newPassword', required) .control-group input(type='password', placeholder=env.t('confirmPass'), ng-model='changePass.confirmNewPassword', required) input.btn(type='submit', value=env.t('submit')) hr h4=env.t('dangerZone') a.btn.btn-danger(ng-click='modals.reset = true', popover-trigger='mouseenter', popover-placement='right', popover=env.t('resetaccpop'))= env.t('resetaccount') a.btn.btn-danger(ng-click='modals.delete = true', popover-trigger='mouseenter', popover=env.t('deleteaccpop'))= env.t('deleteaccount') script(type='text/ng-template', id='partials/options.settings.api.html') .row.fluid .span6 h2=env.t('API') small=env.t('APIText') h6=env.t('userId') pre.prettyprint {{user.id}} h6=env.t('APIToken') pre.prettyprint {{user.apiToken}} h6=env.t('qrcode') img(src='https://chart.googleapis.com/chart?cht=qr&chs=200x200&chl=%7B%22address%22%3A%22https%3A%2F%2Fhabitrpg.com%22%2C%22user%22%3A%22{{user.id}}%22%2C%22key%22%3A%22{{user.apiToken}}%22%7D&choe=UTF-8&chld=L', alt='qrcode') script(id='partials/options.settings.export.html', type="text/ng-template") .row.fluid .span6 h2=env.t('dataexport') small=env.t('dataexports') h4=env.t('habithistory') =env.t('exporthistory') a(href="/export/history.csv")= ' ' + env.t('csv') h4=env.t('userdata') =env.t('exportuserdata') a(href="/export/userdata.xml")= ' ' + env.t('xml') + ' ' a(href="/export/userdata.json")= env.t('json') script(id='partials/options.settings.subscription.perks.html',type='text/ng-template') table.table.table-striped tr td span.dashed-underline(popover="Ads will stay disabled while you have an active account (original users with disabled ads are grandfathered).",popover-trigger='mouseenter',popover-placement='right') | Disable ads tr td span.dashed-underline(popover="(1 Gem costs {{Shared.planGemLimits.convRate}} Gold) Addresses the \"pay to win\" concern, as everything is now achievable through hard work. There's a {{Shared.planGemLimits.convCap}}G monthly conversion cap to prevent farming.",popover-trigger='mouseenter',popover-placement='right') | Buy Gems with Gold tr td span.dashed-underline(popover="Makes your full history available in graphs and export. Non-subscriber histories get consolidated for database optimization.",popover-trigger='mouseenter',popover-placement='right') | Retain full history entries tr td span.dashed-underline(popover="Complete your stable faster!",popover-trigger='mouseenter',popover-placement='right') | Daily drop-caps doubled //-tr //- td +20 gems to your account tr td span.dashed-underline(popover="This open source project can use all the help it can get. Help us keep Habit alive!",popover-trigger='mouseenter',popover-placement='right') | Supports the developers tr td.alert.alert-info $5 USD / Month script(id='partials/feature-matrix-check.html',type='text/ng-template') span.task-checker.action-yesno input.focusable(type='checkbox', checked) label script(id='partials/options.settings.subscription.html',type='text/ng-template') .well h2 Individual Subscription div(ng-if='!user.purchased.plan.customerId') div(ng-include="'partials/options.settings.subscription.perks.html'") .btn.btn-primary(ng-click='showStripe(true)') Subscribe //-small.muted PayPal coming soon. div(ng-if='user.purchased.plan.customerId') .well div(style='font-size:22px') span.glyphicon.glyphicon-ok | Subscribed div(ng-include="'partials/options.settings.subscription.perks.html'") .btn.btn-small.btn-danger(ng-click='cancelSubscription()') Cancel Subscription