diff --git a/code/boot.js b/code/boot.js
index c2635a0a..dfaf676f 100644
--- a/code/boot.js
+++ b/code/boot.js
@@ -389,6 +389,9 @@ window.setupPlayerStat = function() {
var level = PLAYER.verified_level;
PLAYER.level = level; //for historical reasons IITC expects PLAYER.level to contain the current player level
+ var n = window.PLAYER.nickname;
+ PLAYER.nickMatcher = new RegExp('\\b('+n+')\\b', 'ig');
+
var ap = parseInt(PLAYER.ap);
var thisLvlAp = parseInt(PLAYER.min_ap_for_current_level);
var nextLvlAp = parseInt(PLAYER.min_ap_for_next_level);
@@ -601,10 +604,6 @@ function boot() {
}
urlPortal = getURLParam('pguid');
- // load only once
- var n = window.PLAYER['nickname'];
- window.PLAYER['nickMatcher'] = new RegExp('\\b('+n+')\\b', 'ig');
-
$('#sidebar').show();
if(window.bootPlugins) {
@@ -654,7 +653,7 @@ function boot() {
window.runOnSmartphonesAfterBoot();
// workaround for #129. Not sure why this is required.
-// setTimeout('window.map.invalidateSize(false);', 500);
+ // setTimeout('window.map.invalidateSize(false);', 500);
window.iitcLoaded = true;
window.runHooks('iitcLoaded');
diff --git a/code/redeeming.js b/code/redeeming.js
index 9ed5789f..bdc929d2 100644
--- a/code/redeeming.js
+++ b/code/redeeming.js
@@ -1,8 +1,6 @@
// REDEEMING ///////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
-// TODO remove lots of unused code from the old redeeming method
-
window.REDEEM_SHORT_NAMES = {
'portal shield':'S',
'force amp':'FA',
@@ -27,15 +25,29 @@ window.REDEEM_STATUSES = {
};
window.handleRedeemResponse = function(data, textStatus, jqXHR) {
- var passcode = this.passcode;
+ var passcode = jqXHR.passcode;
if(data.error) {
+ console.error('Error redeeming passcode "'+passcode+'": ' + data.error)
dialog({
title: 'Error: ' + passcode,
html: '' + data.error + ''
});
return;
}
+ if(!data.rewards) {
+ console.error('Error redeeming passcode "'+passcode+'": ', data)
+ dialog({
+ title: 'Error: ' + passcode,
+ html: 'An unexpected error occured'
+ });
+ return;
+ }
+
+ if(data.playerData) {
+ window.PLAYER = data.playerData;
+ window.setupPlayerStat();
+ }
var format = "long";
try {
@@ -49,9 +61,8 @@ window.handleRedeemResponse = function(data, textStatus, jqXHR) {
if(!formatHandlers[format])
format = "long";
- var html = formatHandlers[format](data);
+ var html = formatHandlers[format](data.rewards);
- var that = this;
var buttons = {};
Object.keys(formatHandlers).forEach(function(label) {
if(label == format) return;
@@ -59,7 +70,7 @@ window.handleRedeemResponse = function(data, textStatus, jqXHR) {
buttons[label.toUpperCase()] = function() {
$(this).dialog("close");
localStorage["iitc-passcode-format"] = label;
- handleRedeemResponse.call(that, data, textStatus, jqXHR);
+ handleRedeemResponse(data, textStatus, jqXHR);
}
});
@@ -154,21 +165,23 @@ window.formatPasscodeShort = function(data) {
window.setupRedeem = function() {
$("#redeem").keypress(function(e) {
- if((e.keyCode ? e.keyCode : e.which) !== 13 || !$(this).val()) return;
- var data = {passcode: $(this).val()};
+ if((e.keyCode ? e.keyCode : e.which) !== 13) return;
- window.postAjax('redeemReward', data, window.handleRedeemResponse,
- function(response) {
- var extra = '';
- if(response.status) {
- extra = (window.REDEEM_STATUSES[response.status] || 'The server indicated an error.') + ' (HTTP ' + response.status + ')';
- } else {
- extra = 'No status code was returned.';
- }
- dialog({
- title: 'Request failed: ' + data.passcode,
- html: 'The HTTP request failed. ' + extra
- });
+ var passcode = $(this).val();
+ if(!passcode) return;
+
+ var jqXHR = window.postAjax('redeemReward', {passcode:passcode}, window.handleRedeemResponse, function(response) {
+ var extra = '';
+ if(response.status) {
+ extra = (window.REDEEM_STATUSES[response.status] || 'The server indicated an error.') + ' (HTTP ' + response.status + ')';
+ } else {
+ extra = 'No status code was returned.';
+ }
+ dialog({
+ title: 'Request failed: ' + data.passcode,
+ html: 'The HTTP request failed. ' + extra
});
+ });
+ jqXHR.passcode = passcode;
});
};