/js/error.js
JavaScript | 139 lines | 73 code | 28 blank | 38 comment | 18 complexity | f4592aad4911085100fffed8239e7620 MD5 | raw file
Possible License(s): AGPL-3.0
- /*
- Jappix - An open social platform
- These are the error functions for Jappix
- -------------------------------------------------
- License: AGPL
- Author: Vanaryon
- Last revision: 02/04/11
- */
- // Shows the given error output
- function showError(condition, reason, type) {
- // Enough data to output the error
- if(condition || reason) {
- // Initialize the error text
- var eText = '';
-
- // Any error condition
- if(condition)
- eText += condition;
-
- // Any error type
- if(type && eText)
- eText += ' (' + type + ')';
-
- // Any error reason
- if(reason) {
- if(eText)
- eText += ' - ';
-
- eText += reason;
- }
-
- // We reveal the error
- openThisError(1);
-
- // Create the error text
- $('#board .one-board.error[data-id=1] span').text(eText);
- }
-
- // Not enough data to output the error: output a generic board
- else
- openThisError(2);
- }
- // Handles the error from a packet and return true if any error
- function handleError(packet) {
- /* REF: http://xmpp.org/extensions/xep-0086.html */
-
- // Initialize
- var type, code, reason, condition;
- var node = $(packet);
-
- // First level error (connection error)
- if(node.is('error')) {
- // Get the value
- code = node.attr('code');
-
- // Specific error reason
- switch(code) {
- case '401':
- reason = _e("Authorization failed");
- break;
-
- case '409':
- reason = _e("Registration failed, please choose a different username");
- break;
-
- case '503':
- reason = _e("Service unavailable");
- break;
-
- case '500':
- reason = _e("Internal server error, try later");
- break;
-
- default:
- reason = node.find('text').text();
- break;
- }
-
- // Remove the general wait item (security)
- removeGeneralWait();
-
- // Show reconnect pane
- if(CURRENT_SESSION && CONNECTED) {
- // Anonymous?
- if(isAnonymous())
- createReconnect('anonymous');
- else
- createReconnect('normal');
- }
-
- // Show the homepage (security)
- else if(!CURRENT_SESSION || !CONNECTED) {
- $('#home').show();
- pageTitle('home');
- }
-
- // Still connected? (security)
- if(isConnected())
- con.disconnect();
-
- logThis('First level error received.', 1);
- }
-
- // Second level error (another error)
- else if(node.find('error').size()) {
- type = node.find('error').attr('type');
- reason = node.find('error text').text();
- condition = packet.getElementsByTagName('error').item(0).childNodes.item(0).nodeName.replace(/-/g, ' ');
-
- logThis('Second level error received.', 1);
- }
-
- // No error
- else
- return false;
-
- // Show the error board
- showError(condition, reason, type);
-
- // Return there's an error
- return true;
- }
- // Handles the error reply of a packet
- function handleErrorReply(packet) {
- return handleError(packet.getNode());
- }
- // Handles the error reply for a message
- function handleMessageError(packet) {
- if(!handleErrorReply(packet))
- handleMessage(packet);
- }