js/supportchat.js

Thu, 11 Mar 2010 10:17:39 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 11 Mar 2010 10:17:39 +0000
changeset 13
7ae5a537d7f1
parent 12
7b0df9aad29c
child 14
5f5e198381cc
permissions
-rw-r--r--

Fix variable name

/* Config */
var LOGIN_DOMAIN = "anon.localhost";
var BOSH_URL = "/http-bind";

/*** Helper functions */

/*** XMPP handling */
var conn = null;

/* Called by Strophe when status of connection changes
   (from disconnected to connected, vice-versa, etc.)
*/
function handle_connection_status(status, err)
{
	if(status != Strophe.Status.CONNECTING && status != Strophe.Status.AUTHENTICATING)
		set_busy_status(false);
	else if(status != Strophe.Status.CONNECTED)
		set_busy_status(true);
	
	if(err)
		alert(err); //FIXME: Handle gracefully
	
	if(status == Strophe.Status.CONNECTED)
	{
		//FIXME: Join MUC
		alert("Connected!");
	}
}

/* Initiate the connection to the XMPP server */
function start_connection()
{
	conn = new Strophe.Connection(BOSH_URL);
	var ret = true;
	try
	{
		conn.connect(LOGIN_DOMAIN, null, handle_connection_status, 50);
	}
	catch(e)
	{
		ret = false;
	}
	return ret;
}


/*** UI handling */

/* Handle the user submitting the question form */
function on_question_submit()
{
	var question_type = $("#support-question-type").val();
	var question_name = $("#support-question-name").val();
	var question_text = $("#support-question-text").val();
	
	alert(question_name + " submitted a " + question_type + " question:\n " + question_text);
}

/* Update the UI according to whether we are
   waiting on a network operation
*/
function set_busy_status(status)
{
	//FIXME
}

function display_ui()
{
	// Display pop-up, showing question form
	if(start_connection())
	{
		$("#support-chat").show();
		$("#support-question-submit").click(on_question_submit);
	}
}

$(display_ui); //FIXME (debugging)

mercurial