2012-04-27 02:03:01 +00:00
< Title: >
2013-01-16 00:31:06 +00:00
HabitRPG | Gamify Your Life
2013-01-16 01:16:24 +00:00
2012-07-07 21:45:06 +00:00
< Head: >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
2013-01-14 15:56:40 +00:00
< meta name = "apple-mobile-web-app-capable" content = "yes" >
2013-01-15 19:35:10 +00:00
2013-01-16 01:16:24 +00:00
< modalDialogs: >
< app:myModal modalId = "about-modal" header = "HabitRPG - Gamify Your Life" >
< p > A habit tracker app which treats your goals like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor.< / p >
< h3 > How Does it Work< / h3 >
< p > Watch the < a href = "http://www.youtube.com/watch?feature=player_detailpage&v=uF8ZuN_xxjw#t=261s" > video tutorial here< / a > .< / p >
< h4 > Habits< / h4 >
< p > Habits are goals that you constantly track. For some habits, it only makes sense to gain points (eg, "1h Productive Work"). For others, it only makes sense to lose points (like "Eat Junk Food"). For the rest, both gain and loss apply (eg, for "Take The Stairs", stairs is a gain, elevator is a loss).< / p >
< h4 > Dailies< / h4 >
< p > Dailies are goals that you want to complete once a day. At the end of each day, non-completed Dailies dock you points. If you are doing well, they turn green and are less valuable (experience, gold) and less damaging (HP). This means you can ease up on them for a bit. But if you are doing poorly, they turn red. The worse you do, the more valuable (exp, gold) and more damaging (HP) these goals become. This encourages you to focus on your shortcomings, the reds.< / p >
< h4 > Todos< / h4 >
< p > Todos are one-off goals which need to be completed eventually. Non-completed Todos won’ t hurt you, but they will become more valuable over time. This will encourage you to wrap up stale Todos.< / p >
< h4 > Rewards< / h4 >
< p > As you complete goals, you earn gold to buy rewards. Buy them liberally - rewards are integral in forming good habits. But only buy if you have enough gold - you lose HP otherwise.< / p >
< p > After you’ ve played for a while, you unlock the < strong > Item Store< / strong > under the rewards column. You can now buy weapons, armor, potions, etc. Armor decreases HP loss (by an increasing amount wich each upgrade). Weapons increase experience gain. Potions recover 15 HP.< / p >
Watch the video tutorial here.
< h3 > Resources< / h3 >
< ul >
< li > < a href = "https://github.com/lefnire/habitrpg#faq" > FAQ< / a > < / li >
< li > < a href = "https://github.com/lefnire/habitrpg#roadmap" > Roadmap< / a > < / li >
< li > < a href = "https://github.com/lefnire/habitrpg#api" > API< / a > < / li >
< li > < a href = "https://github.com/lefnire/habitrpg#contact" > Contact< / a > < / li >
< / ul >
< h4 > License< / h4 >
< p > Code is licensed under GNU GPL v3. Content is licensed under CC-BY-SA 3.0. See the LICENSE file for details.< / p >
< h4 > Credits< / h4 >
< p > Content comes from Mozilla’ s < a href = "http://browserquest.mozilla.org/" > BrowserQuest< / a > < / p >
< ul >
< li > < a href = "http://mozilla.org" > Mozilla< / a > < / li >
< li > < a href = "http://www.littleworkshop.fr" > Little Workshop< / a > < / li >
< / ul >
< @footer>
< button class = "btn" data-dismiss = "modal" aria-hidden = "true" > Close< / button >
< /@footer>
< / app:myModal >
{#if _loggedIn}
< app:myModal modalId = "settings-modal" header = "Settings" >
< strong > User ID< / strong > < br / >
< small > Copy this ID for use in third party applications.< / small >
< pre class = prettyprint > {_user.id}< / pre > < br / >
< @footer>
< button class = "btn" data-dismiss = "modal" aria-hidden = "true" > Close< / button >
< /@footer>
< / app:myModal >
< app:myModal modalId = "reset-modal" header = "Reset" >
< p > This resets your entire account - your tasks will be deleted and your character will start over.< / p >
< p > This is highly discouraged because you'll lose historical data, which is useful for graphing your progress over time. However, some people find it useful in the beginning after playing with the app for a while.< / p >
< @footer>
< button class = "btn" data-dismiss = "modal" aria-hidden = "true" > Close< / button >
< button data-dismiss = "modal" x-bind = click:reset class = "btn btn-danger btn-large" > Reset< / button >
< /@footer>
< / app:myModal >
< app:myModal modalId = "why-ads-modal" header = "Why Ads?" >
< p > Habit is maintained by one dude: < a href = "https://github.com/lefnire" > Tyler< / a > . Until Habit can make money, I need to stay afloat to fix bugs and add features. Consider it a donation :D< / p >
< p > If ads make you sick, chime in on Habit's open < a href = "https://github.com/lefnire/habitrpg/wiki/Business-Model" > business model discussion< / a > < / p >
< @footer>
< button data-dismiss = "modal" class = "btn btn-success" > Ok< / button >
< /@footer>
< / app:myModal >
{else}
< app:myModal modalId = "login-modal" header = "Login / Register" >
< a href = "/auth/facebook" > < img src = '/img/facebook-login-register.jpeg' alt = "Login / Register With Facebook" / > < / a >
< h3 > Or< / h3 >
< boot:tabs >
< boot:tab title = "Login" >
< derby-auth:login / >
< / boot:tab >
< boot:tab title = "Register" >
< derby-auth:register / >
< / boot:tab >
< / boot:tabs >
< / app:myModal >
{/}
<!-- Game Over Modal -->
< div style = "{#unless equal(_user.stats.lvl,0)}display:none;{/}" >
< app:myModal noDismiss = true modalId = 'dead-modal' >
< table >
< tr >
< td > < img src = "/img/BrowserQuest/habitrpg_mods/dead.png" / > < / td >
< td >
< h3 > Game Over< / h3 >
< p >
< a x-bind = click:revive class = "btn btn-danger btn-large" > Continue< / a >
< / p >
< / td >
< / tr >
< / table >
< / app:myModal >
< / div >
<!-- Re - Roll modal -->
< app:myModal modalId = 'reroll-modal' header = "Reset Your Tasks" >
< app:userTokens / >
< p > Highly discouraged because red tasks provide good incentive to improve (< a target = "_blank" href = "https://github.com/lefnire/habitrpg#all-my-tasks-are-red-im-dying-too-fast" > read more< / a > ). However, this becomes necessary after long bouts of bad habits.< / p >
< @footer>
{#if lessThan(_user.balance,1)}
< a data-dismiss = "modal" x-bind = "click:showStripe" class = "btn btn-danger btn-large" > Buy More Tokens< / a > < span class = 'token-cost' > Not enough tokens< / span >
{else}
< a data-dismiss = "modal" x-bind = click:buyReroll class = "btn btn-danger btn-large" > Re-Roll< / a > < span class = 'token-cost' > 4 Tokens< / span >
{/}
< /@footer>
< / app:myModal >
2012-04-27 02:03:01 +00:00
< Header: >
2013-01-16 01:16:24 +00:00
< app:modalDialogs / >
2012-06-21 00:47:08 +00:00
< ui:connectionAlert >
2012-06-26 13:23:16 +00:00
< div id = "head" >
2013-01-11 03:06:53 +00:00
{#if equal(_user.notifications.kickstarter,'show')}
< div class = 'alert alert-success' >
2013-01-16 02:02:14 +00:00
< a x-bind = "click:closeKickstarterNofitication" class = 'pull-right' > Dismiss< / a >
2013-01-12 23:13:41 +00:00
Help Habit by backing the < strong > < a href = "http://kck.st/XoA3Yg" > Kickstarter< / a > < / strong > ! Funds iPhone & Android apps, < a href = "https://github.com/lefnire/habitrpg/issues?labels=critical&page=1&state=open" > bug fixes< / a > , and the < a href = "https://github.com/lefnire/habitrpg/issues/58" > Groups feature< / a > .
2013-01-11 03:06:53 +00:00
< / div >
{/}
2013-01-16 23:56:06 +00:00
{#if equal(_user.flags.aws_migrating,'show')}
< div class = 'alert' >
< a x-bind = "click:closeAwsNotification" class = 'pull-right' > Dismiss< / a >
2013-01-17 01:16:06 +00:00
Hey guys, Tyler here. Working on migrating to AWS to fix the "Offline" error people are experiencing (follow < a href = "https://github.com/lefnire/habitrpg/issues/91" > issue here< / a > ). Hang tight.
2013-01-16 23:56:06 +00:00
< / div >
{/}
2013-01-17 01:48:05 +00:00
{#if equal(_user.flags.aws_migrating,'show')}
< div class = 'alert' >
< div id = "mc_embed_signup" >
< form action = "http://habitrpg.us6.list-manage.com/subscribe/post?u=274fbd56713d1968df2e18e18&id=7d09ec341f" method = "post" id = "mc-embedded-subscribe-form" name = "mc-embedded-subscribe-form" class = "validate" target = "_blank" novalidate >
Tyler Here. You're awesome. I'm working on scaling the site as fast as I can. Add your email if you want to be reminded. Thank you for understanding.
< div class = "indicates-required" > < / div >
< div class = "mc-field-group" >
< label for = "mce-EMAIL" > Email Address < span class = "asterisk" > *< / span > < / label >
< input type = "email" value = "" name = "EMAIL" class = "required email" id = "mce-EMAIL" >
< / div >
< div id = "mce-responses" class = "clear" >
< div class = "response" id = "mce-error-response" style = "display:none" > < / div >
< div class = "response" id = "mce-success-response" style = "display:none" > < / div >
< / div >
< div class = "clear" >
< input type = "submit" value = "Subscribe" name = "subscribe" id = "mc-embedded-subscribe" class = "button" >
< / div >
2013-01-17 01:53:17 +00:00
< div class = 'clear-both' > < / div >
2013-01-17 01:48:05 +00:00
< / form >
< / div >
< / div >
{/if}
2013-01-16 23:56:06 +00:00
2012-09-07 21:21:09 +00:00
< div class = 'pull-right' >
2012-11-15 05:47:58 +00:00
{#unless _loggedIn}
2012-12-04 23:18:59 +00:00
< a class = "btn btn-small btn-info" href = "#login-modal" data-toggle = "modal" > Login / Register< / a >
2012-09-15 19:06:51 +00:00
{else}
2012-09-16 00:27:50 +00:00
< div class = "btn-group" >
2012-11-15 18:10:59 +00:00
< button class = "btn btn-small" > {_loginName}< / button >
2012-09-16 00:27:50 +00:00
< button class = "btn btn-small dropdown-toggle" data-toggle = "dropdown" >
< span class = "caret" > < / span >
< / button >
< ul class = "dropdown-menu" >
< li > < a href = "#settings-modal" data-toggle = "modal" > Settings< / a > < / li >
2012-10-25 01:22:32 +00:00
< li > < a href = "#reset-modal" data-toggle = "modal" > Reset< / a > < / li >
< li > < a href = '/logout' > Logout< / a > < / li >
2012-09-16 00:27:50 +00:00
< / ul >
< / div >
2012-09-19 01:37:49 +00:00
{/}
2012-07-11 23:27:53 +00:00
< / div >
2012-09-15 19:06:51 +00:00
2012-09-04 19:30:52 +00:00
< div class = 'container-fluid' >
2012-12-05 00:10:30 +00:00
{#if _flash.error}
< ul class = "alert alert-error" >
{#each _flash.error as :error}< li > {:error}< / li > {/}
< / ul >
{/}
2012-09-04 19:30:52 +00:00
< div class = 'row-fluid' >
< div id = character class = 'span4' >
< table >
< tr >
< td id = "avatar" >
< div class = 'avatar-sprites' >
< img class = 'weapon weapon-{_user.items.weapon}' src = "/img/BrowserQuest/habitrpg_mods/weapon{_user.items.weapon}.png" / >
< img class = 'armor armor-{_user.items.armor}' src = "/img/BrowserQuest/habitrpg_mods/armor{_user.items.armor}.png" / >
< / div >
2012-09-04 20:21:55 +00:00
< div id = "lvl" > < span class = "badge badge-info" > Lvl {_user.stats.lvl}< / span > < / div >
2012-09-04 19:30:52 +00:00
< / td >
< td id = "bars" >
2012-09-04 20:06:10 +00:00
< div class = "progress progress-danger" rel = tooltip data-placement = bottom title = "Health" >
2012-09-04 19:30:52 +00:00
< div class = "bar" style = "width: {percent(_user.stats.hp, 50)}%;" > < / div >
2012-09-04 20:06:10 +00:00
< span class = "progress-text" > < i class = icon-heart > < / i > {round(_user.stats.hp)} / 50< / span >
2012-09-04 19:30:52 +00:00
< / div >
2012-09-04 20:06:10 +00:00
< div class = "progress progress-warning" rel = tooltip data-placement = bottom title = "Experience" >
2012-09-04 19:30:52 +00:00
< div class = "bar" style = "width: {percent(_user.stats.exp,_user._tnl)}%;" > < / div >
< span class = "progress-text" >
{#if _user.history.exp}
2012-09-04 21:10:36 +00:00
< a x-bind = click:toggleChart data-toggle-id = "exp-chart" data-history-path = "_user.history.exp" rel = tooltip title = "Progress" > < i class = icon-signal > < / i > < / a >
2012-09-04 19:30:52 +00:00
{/}
2012-09-04 20:06:10 +00:00
< i class = icon-star > < / i > {round(_user.stats.exp)} / {_user._tnl}
2012-09-04 19:30:52 +00:00
< / span >
< / div >
< / td >
< / tr >
< / table >
2012-09-04 20:36:55 +00:00
< div id = "exp-chart" style = "display:none;" > < / div >
2012-09-04 19:30:52 +00:00
< / div >
< / div >
< / div >
2012-06-26 13:23:16 +00:00
< / div >
2013-01-14 18:31:14 +00:00
2012-06-26 13:24:12 +00:00
< Body: >
< br / >
2012-07-30 21:26:06 +00:00
< div id = wrap class = container-fluid >
< div id = main class = row-fluid >
2012-06-26 13:24:12 +00:00
<!-- would rather have one component: <app:taskList>, which handles taskList, task, and newTask. However,
can't pass references as paramters. so < app:taskList newModel = {_newHabit} list = {_habitList} > doesn't work
and have to pass those in via {{{content}}} instead -->
2012-07-07 17:58:56 +00:00
<!-- helpTitle & helpContent moved to tour -->
2012-12-08 18:00:42 +00:00
< div class = "span3 well habits" >
< h2 > Habits< / h2 >
<!-- removing for now, help - info in the tour instead -->
<!-- <span class="help - icon" rel="popover" data - placement="bottom" data - trigger="hover" data - original - title="{{{helpTitle}}}" data - content="{{{helpContent}}}"><i class="icon - question - sign"></i></span> -->
2012-06-26 16:01:57 +00:00
< ul class = 'habits' > {#each _habitList as :task}< app:task / > {/}< / ul >
2012-09-19 01:37:49 +00:00
< app:newTask type = habit > < input value = {_newHabit} type = "text" name = new-task placeholder = "New Habit" / > < / app:newTask >
2012-12-08 18:00:42 +00:00
< / div >
< div class = "span3 well dailys" >
< h2 > Daily< / h2 >
2012-07-07 04:07:30 +00:00
< ul class = 'dailys' > {#each _dailyList as :task}< app:task / > {/}< / ul >
2012-09-19 01:37:49 +00:00
< app:newTask type = daily > < input value = {_newDaily} type = "text" name = new-task placeholder = "New Daily" / > < / app:newTask >
2012-12-08 18:00:42 +00:00
< / div >
2012-06-26 13:24:12 +00:00
2012-12-08 18:00:42 +00:00
< div class = "span3 well todos" >
2012-06-26 14:22:01 +00:00
< div class = "tabbable" > <!-- Only required for left/right tabs -->
2012-12-08 18:00:42 +00:00
< div class = "row-fluid" >
< h2 class = "span6" > Todos< / h2 >
< ul class = "span6 nav nav-pills" >
< li class = "active" > < a href = "#tab1" data-toggle = "tab" > Remaining< / a > < / li >
< li > < a href = "#tab2" data-toggle = "tab" > Complete< / a > < / li >
< / ul >
< / div >
2012-06-26 14:22:01 +00:00
< div class = "tab-content" >
< div class = "tab-pane active" id = "tab1" >
2012-06-27 13:37:36 +00:00
< ul class = 'todos' >
{#each _todoList as :task}< app:task / > {/}
< / ul >
2012-09-19 01:37:49 +00:00
< app:newTask type = todo > < input value = {_newTodo} type = "text" name = new-task placeholder = "New Todo" / > < / app:newTask >
2012-06-26 14:22:01 +00:00
< / div >
< div class = "tab-pane" id = "tab2" >
2012-06-27 13:37:36 +00:00
< ul class = 'completeds' >
2012-07-27 23:38:28 +00:00
{#each _completedList as :task}< app:task / > {/}
2012-06-27 13:37:36 +00:00
< / ul >
2012-07-28 04:01:58 +00:00
< a x-bind = click:clearCompleted > Clear Completed< / a >
2012-06-26 14:22:01 +00:00
< / div >
< / div >
< / div >
2012-06-29 14:16:02 +00:00
{#if _user.history.todos}
2012-09-04 21:10:36 +00:00
< a x-bind = click:toggleChart data-toggle-id = "todos-chart" data-history-path = "_user.history.todos" rel = tooltip title = "Progress" > < i class = icon-signal > < / i > < / a >
2012-06-29 14:16:02 +00:00
< div id = "todos-chart" style = "display:none;" > < / div >
{/}
2012-12-08 18:00:42 +00:00
< / div >
2012-06-26 13:24:12 +00:00
2012-12-08 18:00:42 +00:00
< div class = "span3 well rewards" >
<!-- Title -->
< div class = "row-fluid" >
< div class = "span6" > < h2 > Rewards< / h2 > < / div >
< div class = "span6" id = "money" > {gold(_user.stats.money)} < img src = '/img/coin_single_gold.png' / > {silver(_user.stats.money)} < img src = '/img/coin_single_silver.png' / > < / div >
< / div >
<!-- Content -->
< ul class = 'rewards' >
{#each _rewardList as :task}< app:task / > {/}
< / ul >
{#if _user.items.itemsEnabled}
< ul class = 'items' >
{#with _items.armor as :item}< app:item / > {/}
{#with _items.weapon as :item}< app:item / > {/}
{#with _items.potion as :item}< app:item / > {/}
{#with _items.reroll as :item}< app:item reroll = true/ > {/}
< / ul >
{/}
2012-07-08 21:59:50 +00:00
2012-09-19 01:37:49 +00:00
< app:newTask type = reward > < input value = {_newReward} type = "text" name = new-task placeholder = "New Reward" / > < / app:newTask >
2012-12-08 18:00:42 +00:00
< / div >
2013-01-14 18:31:14 +00:00
2012-06-26 13:24:12 +00:00
< / div >
< / div >
2012-09-19 01:37:49 +00:00
<!-- Footer -->
2012-09-03 03:42:48 +00:00
< footer class = footer >
< div class = container >
2012-07-31 16:59:42 +00:00
{#unless _mobileDevice}
2012-09-04 17:46:27 +00:00
< div class = 'pull-right' >
2012-09-03 03:42:48 +00:00
< table >
< tr >
< td >
<!-- Github -->
2012-10-12 12:05:00 +00:00
< iframe src = "/github-btns/github-btn.html?user=lefnire&repo=habitrpg&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" width="85px" height="20px">< / iframe >
2012-10-11 21:31:20 +00:00
2012-09-03 03:42:48 +00:00
<!-- Gittip -->
2012-09-15 19:15:59 +00:00
< iframe style = "border: 0; margin: 0; padding: 0;" src = "https://www.gittip.com/lefnire/widget.html" width = "48pt" height = "20pt" > < / iframe >
2012-09-03 03:42:48 +00:00
<!-- AddThis Button BEGIN -->
< / td >
< td >
< div class = "addthis_toolbox addthis_default_style "
addthis:url="http://habitrpg.com"
2013-01-16 18:07:01 +00:00
addthis:title="HabitRPG: Role Playing Game for Self Improvement">
2012-09-03 03:42:48 +00:00
< a class = "addthis_button_facebook_like" fb:like:layout = "button_count" > < / a >
2012-09-03 04:10:54 +00:00
< a class = "addthis_button_tweet" tw:via = "lefnire" > < / a >
2012-09-03 03:42:48 +00:00
< / div >
<!-- AddThis Button END -->
<!-- <a href="https://twitter.com/share" class="twitter - share - button" data - via="lefnire">Tweet</a> -->
< / td >
< / tr >
< / table >
2012-08-08 13:57:32 +00:00
< / div >
2012-07-31 16:59:42 +00:00
{/}
2013-01-16 18:07:01 +00:00
2012-09-04 17:46:27 +00:00
< div >
< ul >
2012-09-15 19:15:59 +00:00
< li > Copyright © 2012 OCDevel LLC< / li >
2013-01-16 01:16:24 +00:00
< li > < a href = "#about-modal" data-toggle = "modal" > About< / a > < / li >
2012-11-08 04:53:48 +00:00
< li > < a target = "_blank" href = "https://github.com/lefnire/habitrpg/wiki/FAQ" > FAQ< / a > < / li >
< li > < a target = "_blank" href = "https://github.com/lefnire/habitrpg#contact" > Contact< / a > < / li >
2012-09-04 17:46:27 +00:00
< li > < a href = "/privacy" > Privacy< / a > < / li >
< li > < a href = "/terms" > Terms< / a > < / li >
< / ul >
< / div >
2012-09-03 03:42:48 +00:00
< / div >
2012-07-30 21:26:06 +00:00
< / footer >
2012-07-07 17:58:56 +00:00
2012-09-19 01:37:49 +00:00
< myModal: nonvoid >
2012-12-27 18:19:05 +00:00
{{#if @noDismiss}}< div data-action = "backdrop" class = "modal-backdrop" > < / div > {{/}}
< div class = "modal {{#unless @noDismiss}}hide{{/}}" id = {{@modalId}} role = "dialog" >
{{#if @header}}
2012-09-19 01:37:49 +00:00
< div class = "modal-header" >
2013-01-09 22:06:06 +00:00
{{#unless @noDismiss}}< button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true" > × < / button > {{/}}
2012-12-27 18:19:05 +00:00
< h3 > {{unescaped @header}}< / h3 >
2012-09-19 01:37:49 +00:00
< / div >
2012-12-27 18:19:05 +00:00
{{/}}
< div class = "modal-body" > {@content}< / div >
2013-01-14 18:31:14 +00:00
{{#if @footer}}
< div class = "modal-footer" > {{@footer}}< / div >
{{/}}
2012-09-19 01:37:49 +00:00
< / div >
2012-09-19 16:30:32 +00:00
< userTokens: >
< div class = "pull-right" >
< div class = "input-append" >
< span class = "uneditable-input" style = "width:auto;" > {tokens(_user.balance)}< / span >
< span class = "add-on" > Tokens< / span >
< / div >
2013-01-09 22:06:06 +00:00
< a class = "label" data-toggle = "modal" href = '#reset-modal' > < i class = "icon-ban-circle" > < / i > Reset< / a >
2012-09-19 16:30:32 +00:00
< / div >
<!-- <span class="well pull - right">Tokens: {tokens(_user.balance)}</span> -->
2012-12-08 18:00:42 +00:00
2012-06-26 14:22:01 +00:00
< newTask: nonvoid >
2013-01-14 17:14:38 +00:00
< form class = "form-inline new-task-form" id = new-{{@type}} data-task-type = {{@type}} x-bind = submit:addTask >
2012-12-27 18:19:05 +00:00
{{@content}}
2012-06-26 12:56:57 +00:00
< input class = "btn" type = submit value = Add >
2012-07-08 02:43:49 +00:00
< / form >
2013-01-14 17:14:38 +00:00
{#if _loggedIn}
{#unless equal(@type,'reward')}
2013-01-14 17:39:50 +00:00
< span class = 'pull-right' >
2013-01-15 19:35:10 +00:00
< a x-bind = "click:showStripe" rel = 'tooltip' title = 'Remove Ads' > < i class = 'icon-remove' > < / i > < / a > < br / >
2013-01-14 17:39:50 +00:00
< a data-target = "#why-ads-modal" data-toggle = "modal" rel = 'tooltip' title = 'Why Ads?' > < i class = 'icon-question-sign' > < / i > < / a >
< / span >
2013-01-14 17:14:38 +00:00
< script type = "text/javascript" x-no-minify > < ! - -
google_ad_client = "ca-pub-3242350243827794";
/* Test */
google_ad_slot = "5883123375";
google_ad_width = 234;
google_ad_height = 60;
//-->
< / script >
< script type = "text/javascript"
src="https://pagead2.googlesyndication.com/pagead/show_ads.js" x-no-minify>
< / script >
{/}
{/}
2012-06-10 00:15:33 +00:00
< task: >
2012-10-11 15:07:16 +00:00
< li data-id = {{:task.id}} class = "task {taskClasses(:task.type, :task.completed, :task.value, :task.repeat)}" >
2012-06-27 14:54:04 +00:00
< pre >
2012-06-29 02:32:19 +00:00
< div class = "task-meta-controls" >
2012-07-07 17:58:56 +00:00
2012-06-29 02:32:19 +00:00
< div class = "hover-show" >
2012-09-04 21:10:36 +00:00
< a x-bind = click:toggleTaskEdit data-hide-id = "{{:task.id}}-chart" data-toggle-id = "{{:task.id}}-edit" rel = tooltip title = "Edit" > < i class = "icon-pencil" > < / i > < / a >
< a x-bind = click:del rel = tooltip title = "Delete" > < i class = "icon-trash" > < / i > < / a >
2012-07-07 02:46:22 +00:00
{#if :task.history}
2012-12-05 15:17:45 +00:00
< a x-bind = click:toggleChart data-toggle-id = "{{:task.id}}-chart" data-hide-id = "{{:task.id}}-edit" data-history-path = "_user.tasks.{{:task.id}}.history" rel = "tooltip" title = "Progress" >
2012-07-07 02:46:22 +00:00
< i class = "icon-signal" > < / i >
< / a >
{/}
2012-06-29 02:32:19 +00:00
< / div >
2012-06-26 11:55:09 +00:00
{#if :task.notes}
2012-07-07 17:58:56 +00:00
{#if equal(:task.type,'reward')}
2012-12-05 15:17:45 +00:00
< span rel = "popover" data-trigger = "hover" data-placement = "left" data-content = "{:task.notes}" data-original-title = "{:task.text}" class = 'task-notes' > < i class = "icon-comment" > < / i > < / span >
2012-07-07 17:58:56 +00:00
{else}
2012-12-05 15:17:45 +00:00
< span rel = "popover" data-trigger = "hover" data-content = "{:task.notes}" data-original-title = "{:task.text}" class = 'task-notes' > < i class = "icon-comment" > < / i > < / span >
2012-07-07 17:58:56 +00:00
{/}
2012-06-26 11:55:09 +00:00
{/}
< / div >
< div class = "task-controls" >
2012-06-10 00:57:35 +00:00
<!-- Habits -->
2012-06-25 00:51:42 +00:00
{#if equal(:task.type, 'habit')}
2012-09-24 02:01:41 +00:00
{#if :task.up}< a data-direction = up x-bind = click:score > < img src = "/img/add.png" / > < / a > {/}
{#if :task.down}< a data-direction = down x-bind = click:score > < img src = "/img/remove.png" / > < / a > {/}
2012-06-10 00:57:35 +00:00
<!-- Rewards -->
2012-06-25 00:51:42 +00:00
{else if equal(:task.type, 'reward')}
2012-09-24 02:01:41 +00:00
< a x-bind = click:score class = "buy-link" data-direction = down > {:task.value}< img src = "/img/coin_single_gold.png" / > < / a >
2012-06-10 00:57:35 +00:00
<!-- Daily & Todos -->
{else}
2012-07-28 00:35:05 +00:00
< input type = checkbox checked = "{:task.completed}" / >
2012-06-10 00:57:35 +00:00
{/}
< / div >
2012-07-09 04:07:39 +00:00
< div class = "task-text" > {:task.text}< / div >
2012-06-26 11:55:09 +00:00
2012-06-29 02:32:19 +00:00
< app:taskMeta / >
2012-06-27 14:54:04 +00:00
< / pre >
2012-06-10 00:15:33 +00:00
< / li >
2012-06-25 00:51:42 +00:00
2012-06-29 02:32:19 +00:00
< taskMeta: >
2012-06-25 01:51:13 +00:00
< div style = "display:none;" id = {{:task.id}}-edit >
2012-06-26 14:42:07 +00:00
< hr / >
2012-07-18 17:21:00 +00:00
< form x-bind = submit:toggleTaskEdit data-toggle-id = "{{:task.id}}-edit" >
2012-06-27 13:48:47 +00:00
< div class = control-group >
< label > Text< / label > < input type = text value = {:task.text} / >
< label > Notes< / label > < textarea rows = 3 > {:task.notes}< / textarea >
2012-06-26 14:41:18 +00:00
< / div >
2012-06-27 13:48:47 +00:00
{#if equal(:task.type, 'habit')}
< div class = "control-group" >
< label class = "checkbox inline" > < input type = checkbox checked = {:task.up} > Up< / label >
< label class = "checkbox inline" > < input type = checkbox checked = {:task.down} > Down< / label >
< / div >
{/}
2012-09-05 02:09:52 +00:00
{#if equal(:task.type, 'daily')}
< label > Repeat< / label >
< div class = "control-group btn-group repeat-days" >
<!-- note, does not use data - toggle="buttons - checkbox" - it would interfere with our own click binding -->
< button type = "button" class = "btn btn-info {#if :task.repeat.su}active{/}" data-day = 'su' x-bind = click:toggleDay > Su< / button >
< button type = "button" class = "btn btn-info {#if :task.repeat.m}active{/}" data-day = 'm' x-bind = click:toggleDay > M< / button >
< button type = "button" class = "btn btn-info {#if :task.repeat.t}active{/}" data-day = 't' x-bind = click:toggleDay > T< / button >
< button type = "button" class = "btn btn-info {#if :task.repeat.w}active{/}" data-day = 'w' x-bind = click:toggleDay > W< / button >
< button type = "button" class = "btn btn-info {#if :task.repeat.th}active{/}" data-day = 'th' x-bind = click:toggleDay > Th< / button >
< button type = "button" class = "btn btn-info {#if :task.repeat.f}active{/}" data-day = 'f' x-bind = click:toggleDay > F< / button >
< button type = "button" class = "btn btn-info {#if :task.repeat.s}active{/}" data-day = 's' x-bind = click:toggleDay > S< / button >
< / div >
{/}
2012-06-27 13:48:47 +00:00
{#if equal(:task.type, 'reward')}
< div class = control-group >
< label > Price
< div class = "input-append" >
< input class = "span2" size = "16" type = "text" value = {:task.value} > < span class = "add-on" > Gold< / span >
< / div >
< / label >
< / div >
{/}
2012-09-04 21:10:36 +00:00
< button type = submit class = "btn" > Save & Close< / button >
2012-06-27 13:48:47 +00:00
< / form >
2012-07-30 21:26:06 +00:00
< / div >
2012-06-08 18:57:27 +00:00
2012-06-29 08:33:09 +00:00
< div style = "display:none;" id = {{:task.id}}-chart > < / div >
2012-06-29 02:32:19 +00:00
2012-07-08 20:59:07 +00:00
< item: >
< li class = "task reward item" >
2012-07-08 02:43:49 +00:00
< pre >
< div class = "task-meta-controls" >
2012-12-05 15:17:45 +00:00
< span rel = "popover" data-trigger = "hover" data-placement = "left" data-content = "{:item.notes}" data-original-title = "{:item.text}" class = 'task-notes' > < i class = "icon-comment" > < / i > < / span >
2012-07-08 02:43:49 +00:00
< / div >
< div class = "task-controls" >
2012-12-27 18:19:05 +00:00
{#if @reroll}
2012-09-19 01:37:49 +00:00
< a data-toggle = "modal" data-target = "#reroll-modal" class = "item-buy-link" style = 'cursor:pointer' > < i class = icon-retweet > < / i > < / a >
2012-12-27 18:19:05 +00:00
{else}
2012-07-09 04:24:37 +00:00
< a x-bind = click:buyItem class = "item-buy-link" data-type = {:item.type} data-value = {:item.value} data-index = {:item.index} > {:item.value}< img src = "/img/coin_single_gold.png" / > < / a >
2012-12-27 18:19:05 +00:00
{/}
2012-07-08 02:43:49 +00:00
< / div >
2012-07-09 04:24:37 +00:00
< div class = "task-text" > < img src = "/img/BrowserQuest/habitrpg_mods/{:item.icon}.png" / > {:item.text}< / div >
2012-07-08 02:43:49 +00:00
< / pre >
2012-12-12 05:30:36 +00:00
< / li >
< Script s: >
2013-01-15 19:35:10 +00:00
< script src = "https://checkout.stripe.com/v2/checkout.js" > < / script >
2012-12-12 05:30:36 +00:00
{#if equal(_nodeEnv,"production")}
<!-- Google Analytics -->
< script type = "text/javascript" >
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-33510635-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
< / script >
{/}