add a self-serve restore modal for users who want to restore their stats

This commit is contained in:
Tyler Renelle
2013-02-27 09:07:51 -05:00
parent 203e0a124a
commit 01182b377d
2 changed files with 60 additions and 1 deletions
+8
View File
@@ -72,6 +72,14 @@ module.exports.app = (appExports, model) ->
appExports.customizeArmorSet = (e, el) ->
user.set 'preferences.armorSet', $(el).attr('data-value')
appExports.restoreSave = (e, el) ->
batch = new BatchUpdate(model)
batch.startTransaction()
obj = batch.obj()
_.each obj.stats, (stat, key) -> batch.set("stats.#{key}", parseInt(stat))
_.each obj.items, (item, key) -> batch.set("items.#{key}", parseInt(item))
batch.commit()
user.on 'set', 'flags.customizationsNotification', (captures, args) ->
return unless captures == true
$('.main-avatar').popover('destroy') #remove previous popovers
+52 -1
View File
@@ -10,7 +10,8 @@
<pre class=prettyprint>{_user.apiToken}</pre>
<hr/>
<a class='btn btn-danger' data-target="#reset-modal" data-toggle="modal">Reset</a>
<a class='btn btn-danger' data-target="#reset-modal" data-toggle="modal" rel=tooltip title="Resets your entire account (dangerous).">Reset</a>
&nbsp;<a class='btn btn-danger' data-target="#restore-modal" data-toggle="modal" rel=tooltip title="Restores attributes to your character.">Restore</a>
<@footer>
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
@@ -25,6 +26,56 @@
<button data-dismiss="modal" x-bind=click:reset class="btn btn-danger btn-large">Reset</button>
</@footer>
</app:modals:modal>
<app:modals:modal modalId="restore-modal" header="Restore">
<p>HabitRPG is quite Beta-quality at present, and many find they need to restore character attributes as a result. Enter your numbers here and it will be applied automatically to your character. This will be removed once Habit is more stable.</p>
{#with _user}
<form class="form-horizontal">
<h3>Stats</h3>
<div class="input-prepend">
<span class="add-on">HP</span>
<input class="span2" type="number" value="{.stats.hp}">
</div>
<div class="input-prepend">
<span class="add-on">Exp</span>
<input class="span2" type="number" value="{.stats.exp}">
</div>
<div class="input-prepend">
<span class="add-on">GP</span>
<input class="span2" type="number" value="{.stats.gp}">
</div>
<div class="input-prepend">
<span class="add-on">Level</span>
<input class="span2" type="number" value="{.stats.lvl}">
</div>
<h3>Items</h3>
<div class="input-prepend">
<span class="add-on">Weapon</span>
<input class="span2" type="number" value="{.items.weapon}">
</div>
<div class="input-prepend">
<span class="add-on">Armor</span>
<input class="span2" type="number" value="{.items.armor}">
</div>
<div class="input-prepend">
<span class="add-on">Helm</span>
<input class="span2" type="number" value="{.items.head}">
</div>
<div class="input-prepend">
<span class="add-on">Shield</span>
<input class="span2" type="number" value="{.items.shield}">
</div>
</form>
{/}
<@footer>
<button class="btn" x-bind="click:restoreSave" data-dismiss="modal" aria-hidden="true">Save & Close</button>
</@footer>
</app:modals:modal>
{{else}}
<app:modals:modal modalId="login-modal" header="Login / Register">
<a href="/auth/facebook"><img src='/img/facebook-login-register.jpeg' alt="Login / Register With Facebook"/></a>