PretendYoureXyzzy/WebContent/js/cah.ajax.handlers.js

91 lines
2.7 KiB
JavaScript
Raw Normal View History

/**
* AJAX callback handlers.
*
* TODO make this individual files instead of all in one.
*
* @author ajanata
*/
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.REGISTER] = function(data) {
cah.nickname = data['nickname'];
cah.log.status("You are connected as " + cah.nickname);
$("#nickbox").hide();
$("#canvass").show();
cah.ajax.after_registered();
};
cah.ajax.ErrorHandlers[cah.$.AjaxOperation.REGISTER] = function(data) {
$("#nickbox_error").text(cah.$.ErrorCode_msg[data.error_code]);
$("#nickname").focus();
};
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.FIRST_LOAD] = function(data) {
if (data.in_progress) {
// TODO reload data. see what 'next' is and go from there.
// for now just load the nickname
cah.nickname = data['nickname'];
cah.log.status("You have reconnected as " + cah.nickname);
$("#nickbox").hide();
$("#canvass").show();
cah.ajax.after_registered();
switch (data[cah.$.AjaxResponse.NEXT]) {
case cah.$.ReconnectNextAction.GAME:
cah.log.status("Reconnecting to game...");
cah.Game.joinGame(data[cah.$.AjaxResponse.GAME_ID]);
break;
case cah.$.ReconnectNextAction.NONE:
// pass
break;
default:
cah.log.error("Unknown reconnect next action " + data[cah.$.AjaxResponse.NEXT]);
}
}
};
cah.ajax.ErrorHandlers[cah.$.AjaxOperation.FIRST_LOAD] = function(data) {
// TODO dunno what to do here, if anything
};
/**
* This should only be called after we have a valid registration with the server, as we start doing
* long polling here.
*/
cah.ajax.after_registered = function() {
cah.log.debug("done registering");
2012-01-12 21:05:49 +00:00
// TODO once there are channels, this needs to specify the global channel
cah.Ajax.build(cah.$.AjaxOperation.NAMES).run();
cah.GameList.instance.show();
cah.GameList.instance.update();
cah.longpoll.longPoll();
};
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.CHAT] = function(data) {
// pass
};
2012-01-06 23:53:04 +00:00
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.LOG_OUT] = function(data) {
2012-01-06 23:53:04 +00:00
window.location.reload();
};
2012-01-12 21:05:49 +00:00
cah.ajax.ErrorHandlers[cah.$.AjaxOperation.LOG_OUT] = cah.ajax.SuccessHandlers.logout;
2012-01-12 21:05:49 +00:00
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.NAMES] = function(data) {
2012-01-12 21:05:49 +00:00
cah.log.status("Currently connected: " + data.names.join(", "));
};
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.GAME_LIST] = function(data) {
cah.GameList.instance.processUpdate(data);
};
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.JOIN_GAME] = function(data) {
cah.Game.joinGame(data[cah.$.AjaxResponse.GAME_ID]);
};
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.CREATE_GAME] = cah.ajax.SuccessHandlers[cah.$.AjaxOperation.JOIN_GAME];
cah.ajax.SuccessHandlers[cah.$.AjaxOperation.GET_GAME_INFO] = function(data) {
cah.currentGame.updateGameStatus(data);
};