forked from friendica/friendica-addons
		
	jappixmini: include jappix source
This commit is contained in:
		
					parent
					
						
							
								61eb1f0d18
							
						
					
				
			
			
				commit
				
					
						302b2820d1
					
				
			
		
					 231 changed files with 96082 additions and 2 deletions
				
			
		
							
								
								
									
										526
									
								
								jappixmini/jappix/js/connection.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										526
									
								
								jappixmini/jappix/js/connection.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,526 @@
 | 
			
		|||
/*
 | 
			
		||||
 | 
			
		||||
Jappix - An open social platform
 | 
			
		||||
These are the connection JS script for Jappix
 | 
			
		||||
 | 
			
		||||
-------------------------------------------------
 | 
			
		||||
 | 
			
		||||
License: AGPL
 | 
			
		||||
Author: Vanaryon
 | 
			
		||||
Last revision: 29/08/11
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// Does the user login
 | 
			
		||||
var CURRENT_SESSION = false;
 | 
			
		||||
 | 
			
		||||
function doLogin(lNick, lServer, lPass, lResource, lPriority, lRemember) {
 | 
			
		||||
	try {
 | 
			
		||||
		// We remove the not completed class to avoid problems
 | 
			
		||||
		$('#home .loginer input').removeClass('please-complete');
 | 
			
		||||
		
 | 
			
		||||
		// We add the login wait div
 | 
			
		||||
		showGeneralWait();
 | 
			
		||||
		
 | 
			
		||||
		// We define the http binding parameters
 | 
			
		||||
		oArgs = new Object();
 | 
			
		||||
		
 | 
			
		||||
		if(HOST_BOSH_MAIN)
 | 
			
		||||
			oArgs.httpbase = HOST_BOSH_MAIN;
 | 
			
		||||
		else
 | 
			
		||||
			oArgs.httpbase = HOST_BOSH;
 | 
			
		||||
		
 | 
			
		||||
		// We create the new http-binding connection
 | 
			
		||||
		con = new JSJaCHttpBindingConnection(oArgs);
 | 
			
		||||
		
 | 
			
		||||
		// And we handle everything that happen
 | 
			
		||||
		setupCon(con);
 | 
			
		||||
		
 | 
			
		||||
		// Generate a resource
 | 
			
		||||
		var random_resource = getDB('session', 'resource');
 | 
			
		||||
		
 | 
			
		||||
		if(!random_resource)
 | 
			
		||||
			random_resource = lResource + ' (' + (new Date()).getTime() + ')';
 | 
			
		||||
		
 | 
			
		||||
		// We retrieve what the user typed in the login inputs
 | 
			
		||||
		oArgs = new Object();
 | 
			
		||||
		oArgs.domain = trim(lServer);
 | 
			
		||||
		oArgs.username = trim(lNick);
 | 
			
		||||
		oArgs.resource = random_resource;
 | 
			
		||||
		oArgs.pass = lPass;
 | 
			
		||||
		oArgs.secure = true;
 | 
			
		||||
		oArgs.xmllang = XML_LANG;
 | 
			
		||||
		
 | 
			
		||||
		// Store the resource (for reconnection)
 | 
			
		||||
		setDB('session', 'resource', random_resource);
 | 
			
		||||
		
 | 
			
		||||
		// Generate a session XML to be stored
 | 
			
		||||
		session_xml = '<session><stored>true</stored><domain>' + lServer.htmlEnc() + '</domain><username>' + lNick.htmlEnc() + '</username><resource>' + lResource.htmlEnc() + '</resource><password>' + lPass.htmlEnc() + '</password><priority>' + lPriority.htmlEnc() + '</priority></session>';
 | 
			
		||||
		
 | 
			
		||||
		// Save the session parameters (for reconnect if network issue)
 | 
			
		||||
		CURRENT_SESSION = session_xml;
 | 
			
		||||
		
 | 
			
		||||
		// Remember me?
 | 
			
		||||
		if(lRemember)
 | 
			
		||||
			setDB('remember', 'session', 1);
 | 
			
		||||
		
 | 
			
		||||
		// We store the infos of the user into the data-base
 | 
			
		||||
		setDB('priority', 1, lPriority);
 | 
			
		||||
		
 | 
			
		||||
		// We connect !
 | 
			
		||||
		con.connect(oArgs);
 | 
			
		||||
		
 | 
			
		||||
		// Change the page title
 | 
			
		||||
		pageTitle('wait');
 | 
			
		||||
		
 | 
			
		||||
		logThis('Jappix is connecting...', 3);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	catch(e) {
 | 
			
		||||
		// Logs errors
 | 
			
		||||
		logThis('Error while logging in: ' + e, 1);
 | 
			
		||||
		
 | 
			
		||||
		// Reset Jappix
 | 
			
		||||
		destroyTalkPage();
 | 
			
		||||
		
 | 
			
		||||
		// Open an unknown error
 | 
			
		||||
		openThisError(2);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	finally {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Handles the user registration
 | 
			
		||||
function handleRegistered() {
 | 
			
		||||
	logThis('A new account has been registered.', 3);
 | 
			
		||||
	
 | 
			
		||||
	// We remove the waiting image
 | 
			
		||||
	removeGeneralWait();
 | 
			
		||||
	
 | 
			
		||||
	// Reset the title
 | 
			
		||||
	pageTitle('home');
 | 
			
		||||
	
 | 
			
		||||
	// We show the success information
 | 
			
		||||
	$('#home .registerer .success').fadeIn('fast');
 | 
			
		||||
	
 | 
			
		||||
	// We quit the session
 | 
			
		||||
	logout();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Does the user registration
 | 
			
		||||
function doRegister(username, domain, pass) {
 | 
			
		||||
	logThis('Trying to register an account...', 3);
 | 
			
		||||
	
 | 
			
		||||
	try {
 | 
			
		||||
		// We define the http binding parameters
 | 
			
		||||
		oArgs = new Object();
 | 
			
		||||
		
 | 
			
		||||
		if(HOST_BOSH_MAIN)
 | 
			
		||||
			oArgs.httpbase = HOST_BOSH_MAIN;
 | 
			
		||||
		else
 | 
			
		||||
			oArgs.httpbase = HOST_BOSH;
 | 
			
		||||
		
 | 
			
		||||
		// We create the new http-binding connection
 | 
			
		||||
		con = new JSJaCHttpBindingConnection(oArgs);
 | 
			
		||||
		
 | 
			
		||||
		// We setup the connection !
 | 
			
		||||
		con.registerHandler('onconnect', handleRegistered);
 | 
			
		||||
		con.registerHandler('onerror', handleError);
 | 
			
		||||
		
 | 
			
		||||
		// We retrieve what the user typed in the register inputs
 | 
			
		||||
		oArgs = new Object();
 | 
			
		||||
		oArgs.domain = trim(domain);
 | 
			
		||||
		oArgs.username = trim(username);
 | 
			
		||||
		oArgs.resource = JAPPIX_RESOURCE + ' Register (' + (new Date()).getTime() + ')';
 | 
			
		||||
		oArgs.pass = pass;
 | 
			
		||||
		oArgs.register = true;
 | 
			
		||||
		oArgs.secure = true;
 | 
			
		||||
		oArgs.xmllang = XML_LANG;
 | 
			
		||||
		
 | 
			
		||||
		con.connect(oArgs);
 | 
			
		||||
		
 | 
			
		||||
		// We change the registered information text
 | 
			
		||||
		$('#home .homediv.registerer').append(
 | 
			
		||||
			'<div class="info success">' + 
 | 
			
		||||
				_e("You have been registered, here is your XMPP address:") + ' <b>' + con.username.htmlEnc() + '@' + con.domain.htmlEnc() + '</b> - <a href="#">' + _e("Login") + '</a>' + 
 | 
			
		||||
			'</div>'
 | 
			
		||||
		);
 | 
			
		||||
		
 | 
			
		||||
		// Login link
 | 
			
		||||
		$('#home .homediv.registerer .success a').click(function() {
 | 
			
		||||
			return doLogin(con.username, con.domain, con.pass, con.resource, '10', false);
 | 
			
		||||
		});
 | 
			
		||||
		
 | 
			
		||||
		// Show the waiting image
 | 
			
		||||
		showGeneralWait();
 | 
			
		||||
		
 | 
			
		||||
		// Change the page title
 | 
			
		||||
		pageTitle('wait');
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	catch(e) {
 | 
			
		||||
		// Logs errors
 | 
			
		||||
		logThis(e, 1);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	finally {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Does the user anonymous login
 | 
			
		||||
function doAnonymous() {
 | 
			
		||||
	logThis('Trying to login anonymously...', 3);
 | 
			
		||||
	
 | 
			
		||||
	var aPath = '#home .anonymouser ';
 | 
			
		||||
	var room = $(aPath + '.room').val();
 | 
			
		||||
	var nick = $(aPath + '.nick').val();
 | 
			
		||||
	
 | 
			
		||||
	// If the form is correctly completed
 | 
			
		||||
	if(room && nick) {
 | 
			
		||||
		// We remove the not completed class to avoid problems
 | 
			
		||||
		$('#home .anonymouser input').removeClass('please-complete');
 | 
			
		||||
		
 | 
			
		||||
		// Redirect the user to the anonymous room
 | 
			
		||||
		window.location.href = JAPPIX_LOCATION + '?r=' + room + '&n=' + nick;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// We check if the form is entirely completed
 | 
			
		||||
	else {
 | 
			
		||||
		$(aPath + 'input[type=text]').each(function() {
 | 
			
		||||
			var select = $(this);
 | 
			
		||||
			
 | 
			
		||||
			if(!select.val())
 | 
			
		||||
				$(document).oneTime(10, function() {
 | 
			
		||||
					select.addClass('please-complete').focus();
 | 
			
		||||
				});
 | 
			
		||||
			else
 | 
			
		||||
				select.removeClass('please-complete');	
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Handles the user connected event
 | 
			
		||||
var CONNECTED = false;
 | 
			
		||||
 | 
			
		||||
function handleConnected() {
 | 
			
		||||
	logThis('Jappix is now connected.', 3);
 | 
			
		||||
	
 | 
			
		||||
	// Connection markers
 | 
			
		||||
	CONNECTED = true;
 | 
			
		||||
	RECONNECT_TRY = 0;
 | 
			
		||||
	RECONNECT_TIMER = 0;
 | 
			
		||||
	
 | 
			
		||||
	// We hide the home page
 | 
			
		||||
	$('#home').hide();
 | 
			
		||||
	
 | 
			
		||||
	// Not resumed?
 | 
			
		||||
	if(!RESUME) {
 | 
			
		||||
		// Remember the session?
 | 
			
		||||
		if(getDB('remember', 'session'))
 | 
			
		||||
			setPersistent('session', 1, CURRENT_SESSION);
 | 
			
		||||
		
 | 
			
		||||
		// We show the chatting app.
 | 
			
		||||
		createTalkPage();
 | 
			
		||||
		
 | 
			
		||||
		// We reset the homepage
 | 
			
		||||
		switchHome('default');
 | 
			
		||||
		
 | 
			
		||||
		// We get all the other things
 | 
			
		||||
		getEverything();
 | 
			
		||||
		
 | 
			
		||||
		// Set last activity stamp
 | 
			
		||||
		LAST_ACTIVITY = getTimeStamp();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// Resumed
 | 
			
		||||
	else {
 | 
			
		||||
		// Send our presence
 | 
			
		||||
		presenceSend();
 | 
			
		||||
		
 | 
			
		||||
		// Change the title
 | 
			
		||||
		updateTitle();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// Remove the waiting item
 | 
			
		||||
	removeGeneralWait();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Handles the user disconnected event
 | 
			
		||||
function handleDisconnected() {
 | 
			
		||||
	logThis('Jappix is now disconnected.', 3);
 | 
			
		||||
	
 | 
			
		||||
	// Normal disconnection
 | 
			
		||||
	if(!CURRENT_SESSION && !CONNECTED)
 | 
			
		||||
		destroyTalkPage();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Setups the normal connection
 | 
			
		||||
function setupCon(con) {
 | 
			
		||||
	// We setup all the necessary handlers for the connection
 | 
			
		||||
	con.registerHandler('message', handleMessage);
 | 
			
		||||
	con.registerHandler('presence', handlePresence);
 | 
			
		||||
	con.registerHandler('iq', handleIQ);
 | 
			
		||||
	con.registerHandler('onconnect', handleConnected);
 | 
			
		||||
	con.registerHandler('onerror', handleError);
 | 
			
		||||
	con.registerHandler('ondisconnect', handleDisconnected);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Logouts from the server
 | 
			
		||||
function logout() {
 | 
			
		||||
	// We are not connected
 | 
			
		||||
	if(!isConnected())
 | 
			
		||||
		return false;
 | 
			
		||||
	
 | 
			
		||||
	// Disconnect from the XMPP server
 | 
			
		||||
	con.disconnect();
 | 
			
		||||
	
 | 
			
		||||
	logThis('Jappix is disconnecting...', 3);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Terminates a session
 | 
			
		||||
function terminate() {
 | 
			
		||||
	if(!isConnected())
 | 
			
		||||
		return;
 | 
			
		||||
	
 | 
			
		||||
	// Clear temporary session storage
 | 
			
		||||
	resetConMarkers();
 | 
			
		||||
	
 | 
			
		||||
	// Show the waiting item (useful if BOSH is sloooow)
 | 
			
		||||
	showGeneralWait();
 | 
			
		||||
	
 | 
			
		||||
	// Change the page title
 | 
			
		||||
	pageTitle('wait');
 | 
			
		||||
	
 | 
			
		||||
	// Disconnect from the XMPP server
 | 
			
		||||
	logout();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Quitss a session
 | 
			
		||||
function quit() {
 | 
			
		||||
	if(!isConnected())
 | 
			
		||||
		return;
 | 
			
		||||
	
 | 
			
		||||
	// We show the waiting image
 | 
			
		||||
	showGeneralWait();
 | 
			
		||||
	
 | 
			
		||||
	// Change the page title
 | 
			
		||||
	pageTitle('wait');
 | 
			
		||||
	
 | 
			
		||||
	// We disconnect from the XMPP server
 | 
			
		||||
	logout();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Creates the reconnect pane
 | 
			
		||||
var RECONNECT_TRY = 0;
 | 
			
		||||
var RECONNECT_TIMER = 0;
 | 
			
		||||
 | 
			
		||||
function createReconnect(mode) {
 | 
			
		||||
	logThis('This is not a normal disconnection, show the reconnect pane...', 1);
 | 
			
		||||
	
 | 
			
		||||
	// Reconnect pane not yet displayed?
 | 
			
		||||
	if(!exists('#reconnect')) {
 | 
			
		||||
		// Blur the focused input/textarea/select
 | 
			
		||||
		$('input, select, textarea').blur();
 | 
			
		||||
		
 | 
			
		||||
		// Create the HTML code
 | 
			
		||||
		var html = '<div id="reconnect" class="lock">' + 
 | 
			
		||||
				'<div class="pane">' + 
 | 
			
		||||
					_e("Due to a network issue, you were disconnected. What do you want to do now?");
 | 
			
		||||
		
 | 
			
		||||
		// Can we cancel reconnection?
 | 
			
		||||
		if(mode == 'normal')
 | 
			
		||||
			html += '<a href="#" class="finish cancel">' + _e("Cancel") + '</a>';
 | 
			
		||||
		
 | 
			
		||||
		html += '<a href="#" class="finish reconnect">' + _e("Reconnect") + '</a>' + 
 | 
			
		||||
			'</div></div>';
 | 
			
		||||
		
 | 
			
		||||
		// Append the code
 | 
			
		||||
		$('body').append(html);
 | 
			
		||||
		
 | 
			
		||||
		// Click events
 | 
			
		||||
		if(mode == 'normal')
 | 
			
		||||
			$('#reconnect a.finish.cancel').click(function() {
 | 
			
		||||
				return cancelReconnect();
 | 
			
		||||
			});
 | 
			
		||||
		
 | 
			
		||||
		$('#reconnect a.finish.reconnect').click(function() {
 | 
			
		||||
			return acceptReconnect(mode);
 | 
			
		||||
		});
 | 
			
		||||
		
 | 
			
		||||
		// Try to reconnect automatically after a while
 | 
			
		||||
		if(RECONNECT_TRY < 5)
 | 
			
		||||
			RECONNECT_TIMER = 5 + (5 * RECONNECT_TRY);
 | 
			
		||||
		else
 | 
			
		||||
			RECONNECT_TIMER = 120;
 | 
			
		||||
		
 | 
			
		||||
		// Change the try number
 | 
			
		||||
		RECONNECT_TRY++;
 | 
			
		||||
		
 | 
			
		||||
		// Fire the event!
 | 
			
		||||
		$('#reconnect a.finish.reconnect').everyTime('1s', function() {
 | 
			
		||||
			// We can reconnect!
 | 
			
		||||
			if(RECONNECT_TIMER == 0)
 | 
			
		||||
				return acceptReconnect(mode);
 | 
			
		||||
			
 | 
			
		||||
			// Button text
 | 
			
		||||
			if(RECONNECT_TIMER <= 10)
 | 
			
		||||
				$(this).text(_e("Reconnect") + ' (' + RECONNECT_TIMER + ')');
 | 
			
		||||
			
 | 
			
		||||
			// Remove 1 second
 | 
			
		||||
			RECONNECT_TIMER--;
 | 
			
		||||
		});
 | 
			
		||||
		
 | 
			
		||||
		// Page title
 | 
			
		||||
		updateTitle();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reconnects the user if he was disconnected (network issue)
 | 
			
		||||
var RESUME = false;
 | 
			
		||||
 | 
			
		||||
function acceptReconnect(mode) {
 | 
			
		||||
	logThis('Trying to reconnect the user...', 3);
 | 
			
		||||
	
 | 
			
		||||
	// Resume marker
 | 
			
		||||
	RESUME = true;
 | 
			
		||||
	
 | 
			
		||||
	// Show waiting item
 | 
			
		||||
	showGeneralWait();
 | 
			
		||||
	
 | 
			
		||||
	// Reset some various stuffs
 | 
			
		||||
	var groupchats = '#page-engine .page-engine-chan[data-type=groupchat]';
 | 
			
		||||
	$(groupchats + ' .list .role').hide();
 | 
			
		||||
	$(groupchats + ' .one-group, ' + groupchats + ' .list .user').remove();
 | 
			
		||||
	$(groupchats).attr('data-initial', 'false');
 | 
			
		||||
	
 | 
			
		||||
	// Stop the timer
 | 
			
		||||
	$('#reconnect a.finish.reconnect').stopTime();
 | 
			
		||||
	
 | 
			
		||||
	// Remove the reconnect pane
 | 
			
		||||
	$('#reconnect').remove();
 | 
			
		||||
	
 | 
			
		||||
	// Try to login again
 | 
			
		||||
	if(mode == 'normal')
 | 
			
		||||
		loginFromSession(XMLFromString(CURRENT_SESSION));
 | 
			
		||||
	else if(mode == 'anonymous')
 | 
			
		||||
		anonymousLogin(HOST_ANONYMOUS);
 | 
			
		||||
	
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cancel the reconnection of user account (network issue)
 | 
			
		||||
function cancelReconnect() {
 | 
			
		||||
	logThis('User has canceled automatic reconnection...', 3);
 | 
			
		||||
	
 | 
			
		||||
	// Stop the timer
 | 
			
		||||
	$('#reconnect a.finish.reconnect').stopTime();
 | 
			
		||||
	
 | 
			
		||||
	// Remove the reconnect pane
 | 
			
		||||
	$('#reconnect').remove();
 | 
			
		||||
	
 | 
			
		||||
	// Destroy the talk page
 | 
			
		||||
	destroyTalkPage();
 | 
			
		||||
	
 | 
			
		||||
	// Renitialize the previous session parameters
 | 
			
		||||
	resetConMarkers();
 | 
			
		||||
	
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Clears session reminder database
 | 
			
		||||
function clearLastSession() {
 | 
			
		||||
	// Clear temporary storage
 | 
			
		||||
	resetConMarkers();
 | 
			
		||||
	
 | 
			
		||||
	// Clear persistent storage
 | 
			
		||||
	if($(XMLFromString(getPersistent('session', 1))).find('stored').text() == 'true')
 | 
			
		||||
		removePersistent('session', 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Resets the connection markers
 | 
			
		||||
function resetConMarkers() {
 | 
			
		||||
	CURRENT_SESSION = false;
 | 
			
		||||
	CONNECTED = false;
 | 
			
		||||
	RESUME = false;
 | 
			
		||||
	RECONNECT_TRY = 0;
 | 
			
		||||
	RECONNECT_TIMER = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Logins from a saved session
 | 
			
		||||
function loginFromSession(data) {
 | 
			
		||||
	// Select the data
 | 
			
		||||
	var session = $(data);
 | 
			
		||||
	
 | 
			
		||||
	// Fire the login event
 | 
			
		||||
	doLogin(
 | 
			
		||||
		session.find('username').text(),
 | 
			
		||||
		session.find('domain').text(),
 | 
			
		||||
		session.find('password').text(),
 | 
			
		||||
		session.find('resource').text(),
 | 
			
		||||
		session.find('priority').text(),
 | 
			
		||||
		false
 | 
			
		||||
	);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Quits a session normally
 | 
			
		||||
function normalQuit() {
 | 
			
		||||
	// Reset our database
 | 
			
		||||
	clearLastSession();
 | 
			
		||||
	
 | 
			
		||||
	// We quit the current session
 | 
			
		||||
	quit();
 | 
			
		||||
	
 | 
			
		||||
	// We show an info
 | 
			
		||||
	openThisInfo(3);
 | 
			
		||||
	
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Gets all the users stuffs
 | 
			
		||||
function getEverything() {
 | 
			
		||||
	getFeatures();
 | 
			
		||||
	getRoster();
 | 
			
		||||
	listPrivacy();
 | 
			
		||||
	getStorage(NS_ROSTERNOTES);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Plugin launcher
 | 
			
		||||
function launchConnection() {
 | 
			
		||||
	// Logouts when Jappix is closed
 | 
			
		||||
	$(window).bind('beforeunload', terminate);
 | 
			
		||||
	
 | 
			
		||||
	// Nothing to do when anonymous!
 | 
			
		||||
	if(isAnonymous())
 | 
			
		||||
		return;
 | 
			
		||||
	
 | 
			
		||||
	// Try to resume a stored session, if not anonymous
 | 
			
		||||
	var session = XMLFromString(getPersistent('session', 1));
 | 
			
		||||
	
 | 
			
		||||
	if($(session).find('stored').text() == 'true') {
 | 
			
		||||
		// Hide the homepage
 | 
			
		||||
		$('#home').hide();
 | 
			
		||||
		
 | 
			
		||||
		// Show the waiting icon
 | 
			
		||||
		showGeneralWait();
 | 
			
		||||
		
 | 
			
		||||
		// Login!
 | 
			
		||||
		loginFromSession(session);
 | 
			
		||||
		
 | 
			
		||||
		logThis('Saved session found, resuming it...', 3);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// Not connected, maybe a XMPP link is submitted?
 | 
			
		||||
	else if((parent.location.hash != '#OK') && LINK_VARS['x']) {
 | 
			
		||||
		switchHome('loginer');
 | 
			
		||||
		
 | 
			
		||||
		logThis('A XMPP link is set, switch to login page.', 3);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Launch this plugin!
 | 
			
		||||
$(document).ready(launchConnection);
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue